当前位置: 首页 > 面试题库 >

使用JSON和JQuery将一系列复杂对象发布到ASP.NET MVC Controller

苏涛
2023-03-14
问题内容

但是解决方案似乎不适合我的问题。

这是我的HTML。行数是可变的:

 <table id="workPlanTable">
    <tr>
        <th>
            Begin
        </th>
        <th>
            End
        </th>
    </tr>

    <tr itemId="1">
        <td><input class="begin" id="begin_1" name="begin_1" type="text" value="5:30" /></td>
        <td><input class="end" id="end_1" name="end_1" type="text" value="11:30" /></td>
    </tr>
    <tr itemId="3">
        <td><input class="begin" id="begin_3" name="begin_3" type="text" value="5:30" /></td>
        <td><input class="end" id="end_3" name="end_3" type="text" value="7:30" /></td>
    </tr>

</table>

JS构建一个对象数组并将其发布到控制方法中:

<script type="text/javascript">
$(function() {

  submitForm = function() {
    var items = new Array();
    $("#workPlanTable tr").each(function(i) {
      var end = $(this).find(".end").val();
      var begin = $(this).find(".begin").val();
      var item = {
        "Begin": begin,
        "End": end
      };
      items.push(item);

    });
    var postData = {
      myItems: items
    };

    $.ajax({
      url: '~/WorkPlan/AjaxUpdate',
      type: 'POST',
      dataType: 'json',
      data: postData,
      contentType: 'application/json; charset=utf-8',
      success: function(result) {
        alert(result.Result);
      }
    });
  }
})
</script>

每行代表一个WorkPlanItem。

我的目标是将它们全部发布到我的控制器以更新它们。

我似乎无法弄清楚如何在控制器方法(AjaxUpdate)中访问数组。


问题答案:

您可以按Vikas发布的方式对表格进行序列化,或者,如果您希望遍历页面(如当前操作)并使用数组,可以使用stringify函数postData

在控制器上,您需要处理json字符串。您可以使用System.Web.Script.Serialization.JavaScriptSerializer
该类来反序列化它。如果您有一个对象映射到您要传递的数据,则可以使用Deserialize方法。否则,您仍然可以使用DeserializeObject,但这将为您提供一个Dictionary<string, string>收集数据的集合。并不是很有趣(请相信我),但是它可以工作。



 类似资料:
  • 问题内容: 我当前的代码如下所示。如何将数组传递给控制器​​,控制器动作必须接受哪种参数? 我的控制器动作方法看起来像 问题答案: 我找到了解决方案。我使用了Steve Gentile,jQuery和ASP.NETMVC的解决方案-将JSON发送到Action-Revisited。 我的ASP.NET MVC视图代码如下所示: 并且我的控制器动作装饰有一个自定义属性 可在此处找到自定义属性的代码(

  • 问题内容: 我一直在寻找这个小时,却没有找到答案。在燃烧之前,请仔细阅读整个问题!:) 我有类似这样的表格: 并且需要能够将其序列化为: 我在SO上尝试过大多数答案,包括jquery-json库,并且大多数返回如下所示: 这是 我不能使用的 东西!:P 提前谢谢大家。 问题答案: 试试我为您编写的这段代码…仅使用您的数据结果,对我来说效果很好。您可以对其进行处理,并制作一个简单的jQuery插件…

  • 问题内容: 我创建了一个需要发布到jersey的json,这是由grizzly运行的具有REST网络服务的服务器获取需要输出的传入json对象。我正在尝试,但不确定如何正确实施。 我有一个在加载时运行此方法的html文件 问题答案: 要将json发送到服务器,首先必须创建json 这就是构造ajax请求以将json作为post var发送的方式。 json现在将在post var中。

  • 问题内容: 我有一个简单的php文件,它可以解码我的json字符串,并与ajax一起传递并标记结果,但是我不能保留变量,为什么? 我尝试使用fireBug进行检查,我可以看到POST请求已正确发送,当调用 php 脚本时,他对我做出了Noooooooob的响应,似乎已设置了任何POST变量。 我想要的就是拥有我的数组=) JSON字符串由生成: 的JavaScript save_categorie

  • 问题内容: 我正在使用Symfony 2开发一个项目,我已经建立了一个捆绑包来处理我的所有数据库服务,这些服务来回传递JSON数据。 我的问题/问题: 是否可以发布简单的JSON对象?目前,我通过给对象起一个名字来欺骗我的ajax调用的普通表单帖子,如果我不给它起一个名字,我似乎无法从Symfony请求对象中获取数据。 我希望能够使用一个服务包来处理来自AJAX调用或常规Symfony形式的数据。

  • 如果这是重复的,我想提前向您道歉,但是,我在过去的两天里一直在四处寻找,没有找到任何解决我问题的方法。 我已经创建了一个web服务,我想向其发布一个JSON对象。我的问题如下: 假设我有三个对象。 如您所见,ObjectC引用了ObjectA和ObjectB,它们也引用了ObjectA。插入新ObjectC时,ObjectC. ObjtA应该与ObjectC. ObjtB. ObjtA相同。 PO