我一直在玩MVC.我目前难以使用html辅助方法.我注意到的一件事是我无法将ASP.NET Web Form逻辑应用到MVC中.为了进一步解释,在ASP.NET中我可以创建一个Label控件并为其分配一些文本数据,然后读取文本数据.
但是,在MVC中,我似乎无法对@ Html.LabelFor/@ Html.Label做同样的事情,我已经意识到,一旦从表单执行POST,Label中的值就不会绑定回我的视图模型.但是,如果我使用EditorFor或TextBoxFor,我可以在POST时获取绑定到viewmodel的值.
我的问题是什么html hlper方法应该用来显示文本为readonly但是能够在post上绑定回我的viewmodel?我试过TextBoxFor,其html属性设置为disabled和readonly但没有运气.
感谢任何指针.谢谢
您应该能够通过传入方法将该readonly属性绑定到方法的第二个参数:TextBoxhtmlAttributesTextBoxFor
<%=Html.TextBoxFor(m => m.SomeProperty, new { @readonly = "readonly" }) %>
Run Code Online (Sandbox Code Playgroud)
在MSDN上:InputExtensions.TextBoxFor方法(HtmlHelper,Expression>,Object)
如果您尝试维护Label值,可以使用LabelFor和HiddenFor方法的组合.
我不知道为什么你需要这样做,因为你应该能够从属性中获取DisplayText属性或属性名称.
<%=Html.LabelFor(m => m.SomeProperty) %>
<%=Html.HiddenFor(m => m.SomeProperty) %>
Run Code Online (Sandbox Code Playgroud)
但这并没有多大意义,因为通常的语法是:
<%=Html.LabelFor(m => m.SomeProperty) %>
<%=Html.TextBoxFor(m => m.SomeProperty) %>
Run Code Online (Sandbox Code Playgroud)
请注意,如果使用该disabled属性,则在提交表单时不会发布输入
| 归档时间: |
|
| 查看次数: |
14260 次 |
| 最近记录: |