如何在WebApp中获取复选框值
本文关键字:获取 复选框 WebApp | 更新日期: 2023-09-27 18:24:12
我从Nick Young那里找到了一个关于复选框的好例子。
最后,他说只要拿到AppID。我该怎么做?
我后来想做一些类似if(IsSelected==true){//some code}的事情
以下是示例:
型号:
public class MerchantModel
{
public int AppId { get; set; }
public string Name { get; set; }
public bool IsSelected { get; set; }
}
public class MerchantViewModel
{
public List<MerchantModel> Merchants { get; set; }
}
控制器:
public class DefaultController : Controller
{
// GET: Default
public ActionResult Index()
{
var merchant1 = new MerchantModel
{
AppId = 1,
Name = "Bob"
};
var merchant2 = new MerchantModel
{
AppId = 2,
Name = "Ted"
};
var merchant3 = new MerchantModel
{
AppId = 3,
Name = "Alice"
};
List<MerchantModel> list = new List<MerchantModel>();
list.Add(merchant1);
list.Add(merchant2);
list.Add(merchant3);
var model = new MerchantViewModel
{
Merchants = list
};
return View(model);
}
[HttpPost]
public ActionResult Index(MerchantViewModel model)
{
return View(model);
}
}
视图:
@model TestCheckBoxes.Models.MerchantViewModel
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
</head>
<body>
<div>
<form action="/default/index" method="post">
<table>
@for (int i = 0; i < Model.Merchants.Count; i++)
{
<tr>
<td>
@Html.CheckBoxFor(x => x.Merchants[i].IsSelected)
</td>
<td>
@Html.HiddenFor(x => x.Merchants[i].AppId)
@Model.Merchants[i].AppId
</td>
<td>
@Html.HiddenFor(x => x.Merchants[i].Name)
@Model.Merchants[i].Name
</td>
</tr>
}
</table>
<button type="submit">Submit</button>
</form>
</div>
</body>
</html>
回到控制器中的[HttpPost]方法中,您将获得一个具有布尔值true或false的MerchantModel的列表。通过这种方式,您可以检查它是否为真,并从中获取AppId。
您是否尝试在post操作中迭代模型中的Merchants?像这样的东西应该起作用:
foreach(var m in model.Merchants)
{
if(m.IsSelected)
{
//execute code for this checkbox being checked
}
}
您可以在post方法的第一行设置一个断点,然后查看视图返回给控制器的内容。您应该期待一个包含所有值的商家列表:AppId、I selected和Name,因为您正在为每个商家发布所有这些值。