C# ASP.NET CheckboxFor问题的MVC UI

C# ASP.NET CheckboxFor问题的MVC UI,c#,asp.net-mvc-4,telerik-mvc,C#,Asp.net Mvc 4,Telerik Mvc,我对ASP.NET的MVC Telerik UI有一个大问题 我正在尝试为布尔字段设置一个复选框。我知道我们有两个输入字段,在不触摸框时返回值false。 当我不接触CBox时,我得到了预期的值'false'。当我选中该框时,我也会得到false,因为CBOx返回字符串=“true,false”,这使得无法直接转换为bool 看法 控制器 public ActionResult test() { return View(); } [HttpPos

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

看法

控制器

    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");
    }
公共操作结果测试()
{
返回视图();
}
[HttpPost]
公共异步任务测试(Models.role角色)
{
var z=请求[“cb_addschool”];
var x=1;
返回操作(“索引”);
}
看法

@model Models.role
@使用(Html.BeginForm(“test”、“Home”、FormMethod.Post、new{@class=“form horizontal”、role=“form”}))
{
@Html.AntiForgeryToken()
添加新角色

@Html.ValidationSummary(“,new{@class=“text danger”}) @LabelFor(m=>m.role_name,新的{@class=“col-md-1控制标签”}) @TextBoxFor(m=>m.role_name,new{@class=“form control form control big”}) @Html.Kendo().CheckBoxFor(m=>m.add_school).Name(“cb_addschool”).Label(“addschool”) }

请提供帮助?

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

var z = Request["cb_addschool"];
您的角色中有此值。所以在这种情况下这是毫无意义的

然后从剑道复选框中删除以下属性:

.Name("cb_addschool")
您不必需要它(如果没有它,属性将被正确绑定)

小提示:如果您正在使用剑道-请使用
Kendo().TextBoxFor
方法,而不是
@Html.TextBoxFor
(或者在您的TextBoxFor中添加“
k-textbox
”类-它将使用剑道CSS样式)

以下是一个例子:

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

从剑道代码中删除
.Name(“cb_addschool”)
(绑定到模型时,绝对不应更改控件的
Name
属性)。然后,当您提交时,
add_school
属性将在您的模型中正确绑定-您无需
var z=Request[“cb_addschool”]代码行我在剑道的某个地方看到,我们应该总是定义Name属性吗?Varz只是用来测试复选框真正返回的内容否。如果删除它并检查生成的html,您将看到它的
,它与模型属性相关。
.Name("cb_addschool")
@(Html.Kendo().TextBoxFor(model => model.role_name)
.HtmlAttributes(new { placeholder = "Select role", @class = "form-control form-control-big" })
)