MVC3 ASP在基于模型的元素中使用if语句(TextboxFor / CheckboxFor等)

时间:2012-01-04 14:34:38

标签: asp.net-mvc asp.net-mvc-3 razor

我在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语句

1 个答案:

答案 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);
}