Javascript 如何在ajax调用中传递具有列表类型属性的对象
我知道以前有人问过我,但我不明白如何用已经提供的答案来解决问题。甚至不知道在哪里写那些ModelBinder代码。因此,我将只描述我的问题。 我有一个视图是强类型的,它是一个具有列表属性(关联关系)的模型 所以,现在我的问题是如何获取AddedProductView中的数据 或者是否有其他方法将AddedProductView数据传递给控制器??Javascript 如何在ajax调用中传递具有列表类型属性的对象,javascript,c#,jquery,asp.net-mvc,cart,Javascript,C#,Jquery,Asp.net Mvc,Cart,我知道以前有人问过我,但我不明白如何用已经提供的答案来解决问题。甚至不知道在哪里写那些ModelBinder代码。因此,我将只描述我的问题。 我有一个视图是强类型的,它是一个具有列表属性(关联关系)的模型 所以,现在我的问题是如何获取AddedProductView中的数据 或者是否有其他方法将AddedProductView数据传递给控制器?? 非常感谢您的帮助。您需要了解模型绑定在MVC中是如何工作的。当您使用任何HTML帮助程序时,该控件的名称将设置为used model属性。比如说 @H
非常感谢您的帮助。您需要了解模型绑定在MVC中是如何工作的。当您使用任何HTML帮助程序时,该控件的名称将设置为used model属性。比如说
@Html.TextBoxFor(model => model.SalesSl, null, new { style = "width:120px" })
将使用type=“text”
和name=“SalesSl”
呈现输入元素,并且当您将表单发布回服务器时,使用name=“SalesSl”
的控件值将绑定到名为SalesSl
的模型属性
但是,当您使用以下内容时:
<td>@sIAM.ProductName</td>
@sIAM.ProductName
未创建名称设置为“模型属性名称”的控件
您需要使用for循环而不是foreach循环,在循环中,您需要对要提交回服务器的每个AddedProductView属性执行类似的操作:
<td>
@Html.Hidden("AddedProductViews[@index].ProductName", @Model.AddedProductViews[index].ProductName);
@Model.AddedProductViews[index].ProductName
</td>
@Html.Hidden(“AddedProductViews[@index].ProductName”,@Model.AddedProductViews[index].ProductName”);
@Model.AddedProductViews[index].ProductName
这些链接应该有帮助:
用于模型的项目。AddedProductView
非常感谢!。在这些链接和您的答案的帮助下,我终于做到了。很高兴为您提供帮助:)
<script>
$(document).ready(function () {
$('#btnAddToCartMod').click(function () {
var data = $('#SalesModForm').serialize();
$.ajax({
type: 'Post',
url: '/Sales/Index',
data: data,
success: function () {
window.location = '/Sales/Index';
}
});
});
});
</script>
[HttpPost]
public ActionResult Index(Sales sales)
{
//no data in sales.AddedProductViews
//sales.AddedProductViews count = 0;
return View();
}
@Html.TextBoxFor(model => model.SalesSl, null, new { style = "width:120px" })
<td>@sIAM.ProductName</td>
<td>
@Html.Hidden("AddedProductViews[@index].ProductName", @Model.AddedProductViews[index].ProductName);
@Model.AddedProductViews[index].ProductName
</td>