MVC UI ASP.NET CheckboxFor Issue

MVC UI for ASP.NET CheckboxFor Issue

我对 ASP.NET 的 MVC Telerik UI 有一个大问题 我正在尝试为布尔字段设置一个复选框。我知道我们有两个输入字段 return 当框未被触摸时值为 false。 当我不触摸 CBox 时,我得到了预期的值 'false'。当我选中该框时,我也得到 false 因为 CBOx 正在 returning 一个字符串 = "true,false" 这使得无法直接转换为 bool.

查看

public class role
{
    public string role_name { get; set; }
    public bool add_school { get; set; }
}

控制器

    public ActionResult test()
    {
        return View();
    }

    [HttpPost]
    public async Task<ActionResult> test(Models.role role)
    {
        var z = Request["cb_addschool"];
        var x = 1;
        return RedirectToAction("Index");
    }

查看

    @model Models.role

    @using (Html.BeginForm("test", "Home", FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
    {
        @Html.AntiForgeryToken()
        <h2>Add a New Role</h2>
        <hr />
        @Html.ValidationSummary("", new { @class = "text-danger" })

        <div class="form-group">
            @Html.LabelFor(m => m.role_name, new { @class = "col-md-1 control-label" })
            <div class="col-md-10">
                @Html.TextBoxFor(m => m.role_name, new { @class = "form-control form-control-big" })
            </div>
        </div>

        <div class="form-group">
        @Html.Kendo().CheckBoxFor(m=>m.add_school).Name("cb_addschool").Label("Add School")
        </div>

        <div class="form-group">
            <div class="col-md-offset-3 col-md-9">
                <input type="submit" class="btn btn-login" value="Register" />
            </div>
        </div>
    }

请问有什么帮助吗?

从您的操作方法中删除此代码:

var z = Request["cb_addschool"];

您的 角色 模型中有这个值。所以在这种情况下这是没有意义的。

比从 Kendo CheckBoxFor:

中删除此属性
.Name("cb_addschool")

你不需要那个(没有那个 属性 将被正确绑定)。

小提示:如果你使用Kendo - 使用Kendo().TextBoxFor方法而不是@Html.TextBoxFor(或添加“k-textbox" class 到您的 TextBoxFor - 它将使用 Kendo CSS 样式)。

这是一个例子:

@(Html.Kendo().TextBoxFor(model => model.role_name)
.HtmlAttributes(new { placeholder = "Select role", @class = "form-control form-control-big" })
)