asp.net-mvc – MVC3 Html.HiddenFor(Model = Model.Id)不传回给控制器
|
我使用脚手架代码创建了一个强类型的MVC3剃刀视图. 该模型是一种基本类型为PersistentEntity的POCO,它定义了一个名为Created,Updated和Id的属性. Id是一个int,创建和更新是DateTime. 我使用Html.HiddenFor在视图上创建隐藏字段. @Html.HiddenFor(model => model.Id) @Html.HiddenFor(model => model.Created) @Html.HiddenFor(model => model.Updated) 在页面上,隐藏的输入正在正确渲染,Id被设置在该值中. <input data-val="true" data-val-number="The field Id must be a number." data-val-required="The Id field is required." id="Id" name="Id" type="hidden" value="12"> 但是当页面提交给控制器[HttpPost] Edit(Model model)时,Id属性始终为0.创建和更新已正确填充了来自View的值. 在这篇文章中,这个例子应该是12.出了什么问题? 我知道我可以将person签名变为[HttpPost] Edit(int personID,Person model),但是为什么模型没有被隐藏的字段填充? 更新 问题是在PersistentEntity上的setter被保护,ASP无法设置属性并吞下它.把这个改为公众解决了这个问题. public abstract class PersistentEntity
{
public virtual int Id { get; protected set; }
public virtual DateTime Created { get; set; }
public virtual DateTime Updated { get; set; }
}
解决方法public virtual int Id { get; protected set; }
保护套<! - 这是你的问题.如果您希望默认模型binder能够分配该值,则需要一个公共设置器. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 在fileupload中选择立即调用C#函数文件
- asp.net-mvc – ASP.NET MVC QueryString默认覆盖提供的值?
- 剃须刀 – MVC4本地化.从视图访问resx
- asp.net-mvc – 如何将ASP.net身份角色放入Identityserver4
- asp.net-web-api – OWIN中间件中的全局异常处理
- 覆盖ASP.NET WebMethod参数的DateTime序列化
- asp.net – UrlRewriting.Net模块IIS7等于Page.User == nul
- asp.net-mvc-4 – Durandal.js:更改每个区域的导航选项
- ASP.NET Core / MVC 6 ViewModel中的依赖注入(DI)
- asp.net-mvc – 从桌面开发人员的角度来学习ASP.NET MVC的建
- asp.net-mvc-3 – MailTo链接在Razor
- .net – 仍然推荐COM吗?
- asp.net-mvc – 如何调试Minification失败 返回未
- 如何指导获取一个经典的asp应用程序在IIS 7.0下工
- ASP.NET MVC 6和ASP.NET Core 1.0之间有什么区别
- asp.net – 如何跟踪Linq-to-sql DataContext上的
- asp.net – 什么是连接池?
- asp.net-core – 是否可以直接在Azure WebApps中
- asp.net-mvc – 为什么HttpContext.Current在asp
- asp-classic – 如何从此ADODB.Recordset获取插入
