输入类型的差异= Checkbox,@ HTML.CheckBox和@HTML.CheckBoxFor?

Tou*_*ubi 8 asp.net-mvc razor asp.net-mvc-3 asp.net-mvc-4 razor-2

我是MVC的新手并且混淆了什么是差异<Input type="Checkbox">,@HTML.CheckBox@HTML.CheckBoxFor.

你能指导为什么两个帮手都是同样的东西吗?在哪种情况下应该使用哪一种?

谢谢

编辑:添加输入 type=checkbox

dot*_*ner 6

<Input type="Checkbox">是一个复选框的Html标记和@Html.CheckBox&@HTML.CheckBoxFor是Razor视图引擎的Html Helpers ..

假设你的viewmodel有一个属性Person.HadDinner,那么通常模型绑定才能正常工作,你必须将复选框Person.HadDinner和id 命名为Person_HadDinner..

你可以使用@Html.CheckBox喜欢

@HTML.CheckBox("Person.HadDinner", Model.Person.HadDinner)
Run Code Online (Sandbox Code Playgroud)

但如果您正在使用@HTML.CheckBoxFor,它将被强类型..

@HTML.CheckBoxFor(x => x.Person.HadDinner)
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,最终输出标记都将是

<input type="checkbox" id="Person_HadDinner" name="Person.HadDinner">
Run Code Online (Sandbox Code Playgroud)