如何在主视图上提交时在部分视图中提交数据 . 部分视图没有单独的提交按钮
我正在尝试在单个订单中添加多个产品 . 每个产品都是部分视图 . 用户可以点击“加号”添加多个产品 . 我希望在提交订单时提交所有产品 . 我的地方订单视图是
@model MyApp.Models.Order_Detail
@section scriptsection {
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
<script src="../../Scripts/jquery-1.4.4.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
$(".addProduct").live("click", function () {
$.get("AddProduct",
function (data) {
$("#Products").append(data);
HideshowMinusButton();
});
});
</script>
}
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>Order</legend>
<div class="editor-label">
Customer
</div>
<div class="editor-field">
@Html.DropDownListFor(c=>c.Order.CustomerID,(List<SelectListItem>)ViewBag.Customers)
</div>
<div>
<fieldset id="Products">
<legend>Products</legend>
@Html.Partial("AddProduct")
</fieldset>
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Order.OrderDate)
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
提交按钮单击如何获取订单中的所有产品?
[HttpPost]
public ActionResult PlaceOrder(Order_detail Ord) //Ord Doesn't Contain Products ??
{
//Add Order to Db
return View("Success");
}
2 回答
看看这个页面,我想它能够帮到你 .
http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx/
你可以改变你的行动方法
或使用http://www.nuget.org/packages/BeginCollectionItem/将绑定建模到Order_detail模型中 .
您可以在post方法中使用表单集合来获取局部视图中的数据 .
仅当控件具有name属性时,才会在表单集合中获取值 .
例如:
然后