2013-03-05 6 views
0

Есть ли альтернативный и более «правильный» способ превратить значение флажка в bool.checkbox values ​​true или false альтернатива строке в cshtml

Мой код cshtml:

@{ 
    Page.Title = ""; 
    Layout = "~/_Layout.cshtml"; 

    bool checked = false; 

    if(isPost) 
    { 
     if(Request["chkbx"] == "on") 
     { 
      checked = true; 
     } 
    } 
} 

<div> 
    <input type="checkbox" name="chkbx" /> 
</div> 
+1

Да, создайте строго типизированный вид и пусть привязка к модели сделает это. –

+0

Могу ли я убедить вас показать мне пример? –

+0

thats действительно плохой пример, одна секунда, googling больше. EDIT: http://odetocode.com/blogs/scott/archive/2009/04/27/6-tips-for-asp-net-mvc-model-binding.aspx –

ответ

3

В ASP.NET MVC просмотров бритвенные вообще не должны возиться с вещами, как Request.

Это до Controller создать ViewModel объект из Request (с использованием ModelBinding предпочтительно), затем передавая созданный объект в View.

Тем не менее, если вы неохотно об изменении курса на ViewModel пути:

Вы можете использовать встроенный в HTML Помощники для Razor: @Html.CheckBox("chkbx", checked)

В качестве альтернативы, если вы предпочитаете кодировать свои HTML элементы вручную , это может выглядеть чище: <input type="checkbox" name="chkbx" @(checked ? "checked" : "") />

 Смежные вопросы

  • Нет связанных вопросов^_^