复选框值true或false替代cshtml中的字符串

时间:2013-03-05 14:43:04

标签: c# html razor checkbox

是否有另一种更“正确”的方法可以将复选框的值转换为bool。

我的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 :(得分:3)

在ASP.NET MVC中,一般来说Razor视图不应该像Request那样混淆。

ControllerViewModel创建Request对象(最好使用ModelBinding),然后将创建的对象传递给View

然而,如果您不愿意将课程改为ViewModel路径:

您可以使用内置的HTML Helper for Razor: @Html.CheckBox("chkbx", checked)

或者,如果您希望手动编写HTML元素,则可能看起来更干净: <input type="checkbox" name="chkbx" @(checked ? "checked" : "") />