我有一个表单,我希望用户提交到服务器。(简化的)模型如下所示:
public class MyData
{
public int MyInt { get; set; }
public ICollection<ComplexObject> MyArray { get; set; }
}
public class ComplexObject
{
public int MyComplexObjectInt { get; set; }
public string MyComplexObjectString { get; set; }
}
接收此对象的控制器操作如下所示:
[HttpPost]
public ActionResult Create(MyData model)
{
...
}
我在客户端(jQuery)中有一个“jQuery”数组,我用用户的输入填充该数组。
问题:如何将"MyArray“值设置为包含jQuery数组值并在控制器中检索该数组?
注意:我搜索了很多这个问题,以及我找到的所有关于ajax的解决方案。我对这些解决方案并不感兴趣,我不知道没有ajax是否能做到这一点。
谢谢。
发布于 2014-07-16 09:49:22
如果可以使用AJAX完成一些工作,也可以使用标准的POST或GET请求来完成。如果您的端点是process.aspx,则只需要使用<form action="process.aspx">
而不是$.ajax('process.aspx')
。
因此,如果您需要从后端获取一些数据,将其与用户提供的数据结合起来,然后在服务器上进行完整的往返(而不是AJAX)处理,您可以使用表单和隐藏的输入:
<form action="process.aspx" method="POST" id="myForm">
<input type="hidden" name="MyInt" value="<%= MyInt %>" />
<input type="hidden" name="ComplexObject" value="" />
</form>
然后,当您需要将ComplexObject
与MyInt
一起发送时,可以将该对象序列化为JSON,将其放入隐藏字段并提交表单:
$('[name="ComplexObject"]').val( JSON.stringify( userObject ) );
$('#myform').submit();
https://stackoverflow.com/questions/24755834
复制相似问题