ASP.NET CheckboxFor问题的MVC UI

时间:2016-01-14 20:54:58

标签: c# asp.net-mvc-4 telerik-mvc

我的MVC Telerik UI for ASP.NET存在很大问题 我试图获得一个布尔字段的复选框。我知道我们有两个输入字段,当未触摸该框时返回值false。 当我没有碰到CBox时,我得到的值是'假'。当我选中该框时,我也会得到错误,因为CBOx返回一个字符串=“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>
    }

请帮忙吗?

1 个答案:

答案 0 :(得分:2)

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

var z = Request["cb_addschool"];

您的角色模型中包含此值。所以在这种情况下这是毫无意义的。

从Kendo CheckBoxFor中删除此属性:

.Name("cb_addschool")

您不必需要(如果没有,属性将被正确绑定)。

小提示:如果您使用的是Kendo - 请使用Kendo().TextBoxFor方法代替@Html.TextBoxFor(或将“k-textbox”类添加到TextBoxFor中 - 它将使用Kendo CSS样式。)

以下是一个例子:

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