0

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

我的cshtml代码:

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

    bool checked = false;

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

<div>
    <input type="checkbox" name="chkbx" />
</div>
4

1 回答 1

3

在 ASP.NET MVC Razor 视图中,通常不应该与Request.

由(最好使用)Controller创建一个ViewModel对象,然后将创建的对象传递给.RequestModelBindingView

但是,如果您不愿意改变ViewModel路径:

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

或者,如果您更喜欢手动编写 HTML 元素,这可能看起来更简洁: <input type="checkbox" name="chkbx" @(checked ? "checked" : "") />

于 2013-03-05T14:57:25.977 回答