Tag: asp.net mvc

JavaScriptSerializer期间ASP.NET MVC中的MaxJsonLengthexception

在我的一个控制器动作中,我返回一个非常大的JsonResult来填充网格。 我收到以下InvalidOperationExceptionexception: 在使用JSON JavaScriptSerializer进行序列化或反序列化时出错。 string的长度超过maxJsonLength属性中设置的值。 不幸的是,将web.config的maxJsonLength属性设置为更高的值并不会显示任何效果。 <system.web.extensions> <scripting> <webServices> <jsonSerialization maxJsonLength="2147483644"/> </webServices> </scripting> </system.web.extensions> 我不想把它作为一个string,就像在这个答案中提到的那样。 在我的研究中,我遇到了这个博客文章,写一个自己的ActionResult (例如LargeJsonResult : JsonResult )被推荐来绕过这个行为。 这是唯一的解决scheme吗? 这是ASP.NET MVC中的错误? 我错过了什么吗? 任何帮助将不胜感激。

如何在ASP.NET MVC 3中以特定格式呈现date时间?

如果我在我的模型类中有一个DateTimetypes的属性,我怎样才能以特定的格式渲染它 – 例如ToLongDateString()返回的格式? 我试过这个… @Html.DisplayFor(modelItem => item.MyDateTime.ToLongDateString()) …因为expression式必须指向一个属性或者字段,所以抛出一个exception。 和这个… @{var val = item.MyDateTime.ToLongDateString(); Html.DisplayFor(modelItem => val); } …它不会抛出exception,但呈现的输出是空的(虽然val包含期望的值,我可以在debugging器中看到)。 提前感谢提示! 编辑 ToLongDateString只是一个例子。 我真正想要使用而不是ToLongDateString是DateTime和DateTime?的自定义扩展方法DateTime? : public static string FormatDateTimeHideMidNight(this DateTime dateTime) { if (dateTime.TimeOfDay == TimeSpan.Zero) return dateTime.ToString("d"); else return dateTime.ToString("g"); } public static string FormatDateTimeHideMidNight(this DateTime? dateTime) { if (dateTime.HasValue) return dateTime.Value.FormatDateTimeHideMidNight(); else return ""; } […]

MVC3不显眼的validation组input

我需要validation3个或更多的input字段(至less需要一个)。 例如,我有电子邮件,传真,电话。 我需要至less一个填写。我需要服务器和客户端“不显眼的validation”。 请帮忙。 我看着“比较”的方法,并尝试修改它,但没有运气。 请帮忙。 谢谢

在ASP.NET MVC Html.ActionLink中包含一个锚标签

在ASP.NET MVC中,我试图创build一个链接,其中包含一个定位标记(也就是将用户导向页面和页面的特定部分)。 我正在尝试创build的url应如下所示: <a href="/category/subcategory/1#section12">Title for a section on the page</a> 我的路由设置了标准: routes.MapRoute("Default", "{controller}/{action}/{categoryid}"); 我正在使用的动作链接语法是: <%foreach (Category parent in ViewData.Model) { %> <h3><%=parent.Name %></h3> <ul> <%foreach (Category child in parent.SubCategories) { %> <li><%=Html.ActionLink<CategoryController>(x => x.Subcategory(parent.ID), child.Name) %></li> <%} %> </ul> <%} %> 我的控制器方法如下: public ActionResult Subcategory(int categoryID) { //return itemList return View(itemList); } 以上正确返回一个URL如下: <a […]

Web API Put请求生成一个Http 405方法不允许的错误

这里是对我的Web API的PUT方法的调用 – 方法的第三行(我从ASP.NET MVC前端调用Web API): client.BaseAddress是http://localhost/CallCOPAPI/ 。 这里是contactUri : 这里是contactUri.PathAndQuery : 最后,这是我的405回应: 这是Web API项目中的WebApi.config: public static void Register(HttpConfiguration config) { config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); config.Routes.MapHttpRoute( name: "DefaultApiGet", routeTemplate: "api/{controller}/{action}/{regionId}", defaults: new { action = "Get" }, constraints: new { httpMethod = new HttpMethodConstraint("GET") }); var […]

TryUpdateModel,ASP .NET MVC 3的实例

我不明白,如何使用TryUpdateModel并同时保存MVC体系结构。 如果我没有弄错,那么使用数据上下文必须在模型中。 所以,这样的代码 var db=new TestEverybody();//it is class, which was generated by EntityFramework var currentTesting=db.Testing.(t => t.id == id).First(); 必须位于模型中,而不是在控制器中,不是吗? 但是TryUpdateModel用法的例子如下: public ActionResult Edit(Testing obj)//Testing collection { var db = new TestEverybody(); var currentTesting=db.Testing.(t => t.id == obj.id).First(); TryUpdateModel(currentTesting); db.SaveChanges(); return RedirectToAction("Index"); } 这不是打破了MVC架构吗? 我们在控制器中使用数据库,而不是在特殊的Model类中。 那么,在实际项目中使用TryUpdateModel的最佳方法是什么?

使用Razor声明视图的MVC HtmlHelper扩展

我试图在我的App_Code文件夹中为MVC 3 RTM项目创build一个Razor声明助手。 我遇到的问题是MVC HtmlHelper扩展,如ActionLink,不可用。 这是因为编译的帮助器派生自System.Web.WebPages.HelperPage ,虽然它公开了一个Html属性,它的typesSystem.Web.WebPages.HtmlHelper而不是System.Web.Mvc.HtmlHelper 。 我遇到的那种错误的一个例子是: 'System.Web.Mvc.HtmlHelper'没有包含'ActionLink'的定义,也没有find接受'System.Web.Mvc.HtmlHelper'types的第一个参数的扩展方法'ActionLink'(你是否缺lessusing指令或组件参考?) 我唯一的解决办法是创build我自己的HelperPage并重写Html属性: using System.Web.WebPages; public class HelperPage : System.Web.WebPages.HelperPage { // Workaround – exposes the MVC HtmlHelper instead of the normal helper public static new HtmlHelper Html { get { return ((System.Web.Mvc.WebViewPage) WebPageContext.Current.Page).Html; } } } 然后,我必须在每个助手的顶部写下以下内容: @inherits FunnelWeb.Web.App_Code.HelperPage @using System.Web.Mvc @using System.Web.Mvc.Html @helper DoSomething() { […]

在ASP.NET MVC中redirect未经授权的控制器

我在ASP.NET MVC中有一个控制器,我只限于pipe理员angular色: [Authorize(Roles = "Admin")] public class TestController : Controller { … 如果不在Adminangular色中的用户导航到此控制器,则会看到空白屏幕。 我想要做的是将他们redirect到视图,说:“你需要在pipe理angular色能够访问此资源。” 我想到的一种做法是在IsUserInRole()上检查每个操作方法,如果不在angular色中,则返回此信息视图。 但是,我必须在每个打破DRY负责人的行动中join这个行为,而且显然很难维持。

当从VS2010发布时,allowDefinition ='MachineToApplication'错误(但只在之前的版本之后)

我可以在我的本地计算机上运行我的Asp.Net MVC 2应用程序,而不会出现问题。 只是运行/debugging。 但是,如果我已经build立了它,我不能发布它! 我必须清理解决scheme并再次发布。 我知道这不是系统的关键,但它真的很烦人。 “一键发布”不是“干净的解决scheme,然后一键发布” 确切的错误如下: 错误11在应用程序级别之外使用注册为allowDefinition ='MachineToApplication'的节是错误的。 此错误可能是由于虚拟目录未被configuration为IIS中的应用程序。 我怀疑这是与视图文件夹中的Web.Config有关,但为什么只有在我之前构build一次。 只是要注意,该应用程序发布后一切正常。

EF5:无法将文件“{0}”附加为数据库“{1}”

我遇到了这里描述的确切问题(请参阅“无法附加到已删除的MDF文件”一节),但是没有告诉问题的解决scheme… 简而言之,问题是在删除.mdf文件后,当我尝试使用EF 5.0访问数据库时,会引发以下exception。 DataException-> EntityException-> SQLEXCEPTION: 无法将文件“{0}”附加为数据库“{1}” 我没有删除数据库文件,现在当运行应用程序期望它使用它的初始化程序时,我得到了令人讨厌的错误消息。 任何方法来解决这个问题?