我在MVC3中使用模型来填充页面上的文本框,如下所示:
<input name="test" value="a" type="radio" id="emp_contributions_gbp" @if (Model.myvalue.ToString() == "x"){<text>checked=true</text>}>
这非常适合说 - “如果model.myvalue = x,那么请选中此框”
但是,我希望能够将此模型返回给控制器,以便在数据更新时保留数据。
我现在正在使用:
@Html.TextBoxFor(m => m.someField)
与模型完美配合,但我不知道如何一起使用.CheckboxFor
和我的IF语句
答案 0 :(得分:4)
您可以使用CheckBoxFor
方法,如下所示:
@Html.CheckBoxFor(m => m.SomeProperty, new { checked = Model.myvalue.ToString() == "x" })
请参阅此次重载的here for the MSDN documentation。
<强>更新强>
请考虑使用the RadioButtonFor
method:
型号:
public class MyViewModel
{
[Required]
public string SomeProperty { get; set; }
}
查看:
@using (Html.BeginForm())
{
<div>A: @Html.RadioButtonFor(x => x.SomeProperty, "a")</div>
<div>B: @Html.RadioButtonFor(x => x.SomeProperty, "b")</div>
<div>C: @Html.RadioButtonFor(x => x.SomeProperty, "c")</div>
<input type="submit" />
}
然后,您可以通过将视图模型属性设置为相应的值来预选一些无线电:
public ActionResult Index()
{
var model = new MyViewModel
{
SomeProperty = "a" // select the first radio
};
return View(model);
}