【发布时间】:2014-07-01 17:40:54
【问题描述】:
我有以下模型类,其中包含一个布尔值:-
Public class Server
{
public bool IsIPUnique { get; set; }
}
目前我正在使用以下内容在我的 Razor 视图中显示复选框:-
<input type="CheckBox" name="IsIPUnique" value="true" @(Html.Raw(Model.IsIPUnique ? "checked=\"checked\"" : ""))/> IP Unique.
但我阅读了 EditorFor 模板,它可以自动创建复选框并根据模型值选中/取消选中它,所以我尝试了以下操作:-
@Html.EditorFor(model=>model.IsIPUnique)<span>test</span>
所以我的问题是我是否可以用使用 EditorFor 的新代码替换我的旧代码?或者 asp.net mvc 可能会以不同的方式处理这些值? 谢谢
【问题讨论】:
-
那么当您尝试新代码时发生了什么?
-
基本上它会生成相同的 HTML 标记,但我不确定是否使用 EditorFor 而不是复选框?
-
你考虑过使用 Html.CheckBoxFor 吗?
-
EditorFor 非常适合当您不关心 mvc 为您的模型生成什么样的输入(意味着没有编辑器模板)或者当您想要具体控制您的模型(或模型的一部分)的方式时生成。在大多数情况下,您会发现像 CheckBoxFor 这样的 html 辅助方法会为您解决问题。
-
另外,在使用表单时要记住的主要一点是,您必须设置 name 属性以进行正确的模型绑定和验证等。当您使用 html 辅助方法时,MVC 会为您处理此问题。
标签: asp.net-mvc asp.net-mvc-5 editorfor