MVC3 ASP, использующий операторы if в элементах на основе модели (TextboxFor / CheckboxFor и т. Д.) - PullRequest
2 голосов
/ 04 января 2012

Я использую модель в 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 Ответ

4 голосов
/ 04 января 2012

Вы можете использовать метод CheckBoxFor следующим образом:

@Html.CheckBoxFor(m => m.SomeProperty, new { checked = Model.myvalue.ToString() == "x" })

См. здесь для документации MSDN этой перегрузки.

Обновление

Попробуйте использовать метод RadioButtonFor вместо:

Модель:

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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...