2013-03-05 79 views
0

是否有替代方案和更正確的方法將複選框的值轉換爲布爾值。複選框值真或假替代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

是的,創建一個強類型的視圖,讓模型綁定做到這一點。 – 2013-03-05 14:53:50

+0

我可以說服你給我一個例子嗎? – 2013-03-05 14:56:36

+0

這實際上是一個不好的例子,一秒鐘,谷歌搜索更多。編輯:http://odetocode.com/blogs/scott/archive/2009/04/27/6-tips-for-asp-net-mvc-model-binding.aspx – 2013-03-05 14:58:06

回答

3

在一般的ASP.NET MVC剃刀的觀點是不應該亂用之類的東西Request

這取決於所述Controller創建從Request(使用ModelBinding優選地)一個ViewModel對象然後使創建的對象到View

然而,如果你改變過程的ViewModel路徑不情願:

您可以使用內置的HTML輔助的剃刀: @Html.CheckBox("chkbx", checked)

另外,如果您願意手動編寫你的HTML元素,這可能看起來更清潔: <input type="checkbox" name="chkbx" @(checked ? "checked" : "") />

相關問題