【发布时间】:2015-02-11 03:03:26
【问题描述】:
我正在尝试获取选中的复选框值
这是我的模型,
public class VehicleViewModel : Vehicle
{
[Display(Name = "Vehicle Type")]
[Required( ErrorMessage = "{0} is required.")]
public string VehicleTypeName { get; set; }
[Display(Name = "Location")]
[Required(ErrorMessage = "{0} is required.")]
public string LocationName { get; set; }
public IEnumerable<AssignProductsViewModel> AssignedProducts { get; set; }
}
public class AssignProductsViewModel
{
public long ProductID { get; set; }
public string ProductName { get; set; }
}
这是我的观点
@foreach (var item in Model.AssignedProducts)
{
<tr>
<td>
<input type="checkbox" value ="@item.ProductID"/>
</td>
<td>
@Html.DisplayFor(model => item.ProductName)
</td>
</tr>
}
这是我的控制器
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult NewVehicle(VehicleViewModel vehicleViewModel, string selected)
{
//Do something with the string here
return View();
}
我知道我需要使用 javascript 将选中的复选框值传递给字符串并将字符串传递给控制器。但我不知道该怎么做,因为我是 javascript 和 MVC 的新手。
【问题讨论】:
-
您的复选框甚至没有
name属性,因此不会回发。您还使用重复的id属性创建了无效的 html。然后您需要将参数设为数组,例如string[] selectedCheckboxes尽管属性ProductID暗示它可能是int无论如何。首先查看jquery ajax documentation,了解如何使用 ajax 发帖。 -
您总是使用 FormCollection。 stackoverflow.com/questions/21303236/…
-
@TimSouthard ,它适用于桌子吗?我需要能够检查多个复选框。谢谢。 :)
-
它适用于任何标签,只要您使用表单。
-
不要使用
FormCollection。您应该始终绑定到模型并让 MVC 为您处理绑定和验证。您是否有理由需要使用 ajax 发布而不是标准表单提交?
标签: javascript c# asp.net-mvc-4 razor