首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在没有ajax的情况下将复杂的对象数组从客户机传递到服务器

在没有ajax的情况下将复杂的对象数组从客户机传递到服务器
EN

Stack Overflow用户
提问于 2014-07-15 10:28:37
回答 1查看 539关注 0票数 0

我有一个表单,我希望用户提交到服务器。(简化的)模型如下所示:

代码语言:javascript
运行
复制
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; }
}

接收此对象的控制器操作如下所示:

代码语言:javascript
运行
复制
[HttpPost]
public ActionResult Create(MyData model)
{
    ...
}

我在客户端(jQuery)中有一个“jQuery”数组,我用用户的输入填充该数组。

问题:如何将"MyArray“值设置为包含jQuery数组值并在控制器中检索该数组?

注意:我搜索了很多这个问题,以及我找到的所有关于ajax的解决方案。我对这些解决方案并不感兴趣,我不知道没有ajax是否能做到这一点。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-16 09:49:22

如果可以使用AJAX完成一些工作,也可以使用标准的POST或GET请求来完成。如果您的端点是process.aspx,则只需要使用<form action="process.aspx">而不是$.ajax('process.aspx')

因此,如果您需要从后端获取一些数据,将其与用户提供的数据结合起来,然后在服务器上进行完整的往返(而不是AJAX)处理,您可以使用表单和隐藏的输入:

代码语言:javascript
运行
复制
<form action="process.aspx" method="POST" id="myForm">
    <input type="hidden" name="MyInt" value="<%= MyInt %>" /> 
    <input type="hidden" name="ComplexObject"   value="" />
</form>

然后,当您需要将ComplexObjectMyInt一起发送时,可以将该对象序列化为JSON,将其放入隐藏字段并提交表单:

代码语言:javascript
运行
复制
$('[name="ComplexObject"]').val( JSON.stringify( userObject ) );
$('#myform').submit();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24755834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档