【发布时间】:2014-07-15 10:28:37
【问题描述】:
我有一个表单,希望用户提交到服务器。 (简化的)模型如下所示:
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)中有一个“ComplexObject”数组,我用用户的输入填充它。
问题:如何设置“MyArray”值以包含 jQuery 数组值并在控制器中检索此数组?
注意:我已经用谷歌搜索了很多这个问题,我发现的所有解决方案都谈到了 ajax。我对这些解决方案不感兴趣,我想知道是否可以在没有 ajax 的情况下完成。
谢谢。
【问题讨论】:
-
如果可以使用 AJAX 完成某些事情,也可以使用标准的 POST 或 GET 请求来完成。如果您的端点是
process.aspx,您只需要使用<form action="process.aspx">而不是$.ajax('process.aspx')。 -
@pawel 好的,那么我该如何获取这个 jquery 数组并将其与其他模型字段(在我的情况下为“MyInt”)一起传递给控制器?
-
类似这样的东西:
<input type="hidden" name="MyInt" value="<%= MyInt %>"> <input type="hidden" name="ComplexObject" value="" />,然后在提交表单之前将 ComplexObject 输入的值设置为JSON.stringify( jQueryArray )。 -
@pawel - 我希望有另一个解决方案,但最终得到了你的解决方案。请发布答案,以便我接受。谢谢!
标签: jquery asp.net-mvc model-view-controller