如何将复选框值传递给 ASP.NET MVC 中的控制器
How to pass checkbox value to controller in ASP.NET MVC
我正在使用
@Html.CheckBoxFor(model => model.AllowOrder, new { id = "allowOrder"})
现在我想将它的值(无论是选中还是未选中)传递给控制器。我正在使用 html.BeginForm
将数据发回控制器。每次我在操作方法中将其值设置为 null 时。操作方法具有以下示例代码。
public ActionResult index(bool isChecked)
{
// code here
}
isChecked
属性 始终作为 null 传入。请任何帮助。 TIA.
如果您不想return 控制整个数据模型,而只想控制一个值,请参见下面的代码:
public IActionResult IndexTest()
{
var model = new ViewModel() { AllowOrder = true };
return View(model);
}
[HttpPost]
public IActionResult IndexTest(bool isChecked)
{
// your code here...
return View("IndexTest", new ViewModel() { AllowOrder = isChecked} );
}
使用 onclick()
跟踪复选框状态:
@model ViewModel
<script>
function onStateChange() {
var item = document.getElementById('allowOrder');
var chk = false;
if (item.checked) {
chk = true;
}
document.getElementById('isChecked').value = chk;
};
</script>
@using (Html.BeginForm())
{
@Html.Hidden("isChecked", Model.AllowOrder)
@Html.CheckBoxFor(r => Model.AllowOrder, new { id = "allowOrder", @onclick = "onStateChange()" })
<input id="Button" type="submit" value="Save" />
}
查看:
@model <specifyModelhere>
@using(Html.BeginForm("index","<YourControllerNameHere>",FormMethod.Post))
{
@Html.CheckBoxFor(r => Model.AllowOrder)
<input id="Button" type="submit" value="Save" />
}
控制器:
public ActionResult index(<YourModelNameHere> model)
{
var ischecked = model.AllowOrder;
// code here
}
这样当你提交表单的时候,整个模型都会回发给你,你可以在controller方法中接收到
我正在使用
@Html.CheckBoxFor(model => model.AllowOrder, new { id = "allowOrder"})
现在我想将它的值(无论是选中还是未选中)传递给控制器。我正在使用 html.BeginForm
将数据发回控制器。每次我在操作方法中将其值设置为 null 时。操作方法具有以下示例代码。
public ActionResult index(bool isChecked)
{
// code here
}
isChecked
属性 始终作为 null 传入。请任何帮助。 TIA.
如果您不想return 控制整个数据模型,而只想控制一个值,请参见下面的代码:
public IActionResult IndexTest()
{
var model = new ViewModel() { AllowOrder = true };
return View(model);
}
[HttpPost]
public IActionResult IndexTest(bool isChecked)
{
// your code here...
return View("IndexTest", new ViewModel() { AllowOrder = isChecked} );
}
使用 onclick()
跟踪复选框状态:
@model ViewModel
<script>
function onStateChange() {
var item = document.getElementById('allowOrder');
var chk = false;
if (item.checked) {
chk = true;
}
document.getElementById('isChecked').value = chk;
};
</script>
@using (Html.BeginForm())
{
@Html.Hidden("isChecked", Model.AllowOrder)
@Html.CheckBoxFor(r => Model.AllowOrder, new { id = "allowOrder", @onclick = "onStateChange()" })
<input id="Button" type="submit" value="Save" />
}
查看:
@model <specifyModelhere>
@using(Html.BeginForm("index","<YourControllerNameHere>",FormMethod.Post))
{
@Html.CheckBoxFor(r => Model.AllowOrder)
<input id="Button" type="submit" value="Save" />
}
控制器:
public ActionResult index(<YourModelNameHere> model)
{
var ischecked = model.AllowOrder;
// code here
}
这样当你提交表单的时候,整个模型都会回发给你,你可以在controller方法中接收到