我正在尝试做这件简单的事情
<%= Html.HiddenFor(model => model.Id)%>
该模型是
[HiddenInput(DisplayValue=true)]
public int Id { get; set; }
但我总是得到这个渲染
<input type="hidden" value="0" name="UserInfo.Id" id="UserInfo_Id">
我检查过,id 不是 0..?!
这里需要一些解释......
编辑
问题似乎是下面提到的后事。
这是工作
<input type="hidden" value="<%= Html.AttributeEncode(Model.Id) %>" id="<%= Html.IdFor(model=>model.Id)%>" name="<%= Html.NameFor(model=>model.Id)%>" />
感谢马纳夫
最佳答案
我不确定您是否是这种情况,但 Html.HiddenFor()
“如果在发布期间更改了值,请不要在发布后输出正确的值。”这不是一个错误,它是这样设计的。
快速修复:
不要使用助手,试试这个:
<input type="hidden" value="<%= Html.AttributeEncode(model.Id) %>" id="Id" name="Id" />
一直为我工作:)
关于asp.net-mvc-2 - 为什么 mvc Html.HiddenFor 不呈现我的字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3606087/