【发布时间】:2016-01-14 20:54:57
【问题描述】:
我对 ASP.NET 的 MVC Telerik UI 有一个大问题 我正在尝试为布尔字段设置一个复选框。我知道我们有两个输入字段可以在未触摸框时返回值 false。 当我不触摸 CBox 时,我得到了预期的值“假”。当我选中该框时,我也得到了错误,因为 CBOx 正在返回一个 string = "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>
}
请帮忙?
【问题讨论】:
-
从 Kendo 代码中删除
.Name("cb_addschool")(当绑定到模型时,您永远不应该更改控件的name属性)。然后add_school属性将在您提交时正确绑定在您的模型中 - 不需要您var z = Request["cb_addschool"];代码行 -
我在 Kendo 的某个地方看到我们应该总是定义 Name 属性? var z 仅用于测试复选框真正返回的内容
-
没有。如果您删除它并检查您生成的 html,您将看到它现在与您的模型属性相关的
<input type="checkbox" name="add_school" ... />。
标签: c# asp.net-mvc-4 telerik-mvc