首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ajax提交给asp.net mvc发布操作,还是将集合转换为json?

Ajax提交给asp.net mvc发布操作,还是将集合转换为json?
EN

Stack Overflow用户
提问于 2014-11-26 22:28:25
回答 3查看 625关注 0票数 0

我需要获得每个检查了Finalize的表行的行ID,并将该字符串/json发送到ASP.net MVC控制器。Ajax给我带来了问题。我设法获取了需要提交的数据,但我不确定最好的方法是什么。我需要创建一个json对象然后发布它,还是有一种简单的方法可以发布我拥有的东西?我尝试了json路径,但没有走多远,所以我回到了这个位置,这至少是获取了正确的数据。

代码语言:javascript
复制
            finalize = function() {
              var tableData = "";
              $('#results').find('tr').each(function() {
                var row = $(this);
                if (row.find('input[type="checkbox"]').is(':checked')) {
                  tableData = tableData + $(this).find('td:first').text() + '\n'; // get ID
                }
              });

              //var myRows = JSON.parse(tableData);
              //$.post("/Journal/SaveEntry", { Row: myRows });

              alert(tableData);
            };
代码语言:javascript
复制
<script src="https://github.com/maxazan/jquery-treegrid/blob/master/js/jquery.treegrid.js"></script>
<script src="https://github.com/maxazan/jquery-treegrid/blob/master/js/jquery.treegrid.bootstrap3.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css">

<table class="table tree truncate_table">
  <tbody>
    <tr class=" info">
      <th>Row ID</th>
      <th>...</th>
      <th>Finalize</th>
    </tr>

    <tr class="treegrid-1">
      <td>
        <span class="treegrid-expander"></span>
        R4915
      </td>
      <td>...</td>
      <td>
        <input type="checkbox" name="Finalize" value="Finalize">
      </td>
    </tr>
    <tr class="treegrid-2">
      <td>
        <span class="treegrid-expander"></span>
        <a target="_blank" href="http://example.com" class="vt-p">
                    R4942
                </a>
      </td>
      <td>...</td>
      <td>
        <input type="checkbox" name="Finalize" value="Finalize">
      </td>
    </tr>
  </tbody>
</table>

<button onclick="finalize()" type="button" class="btn btn-danger pull-right">Finalize</button>

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-11-26 23:13:43

在这里,我假设返回ID的集合比在控制器上拆分一个字符串更有用

Html

代码语言:javascript
复制
<button type="button" id="finalize" class="btn btn-danger pull-right">Finalize</button>

脚本

代码语言:javascript
复制
$('#finalize').click(function() {
  var idArray = new Array();
  $('#results').find('tr').each(function() {
    var row = $(this);
    if (row.find('input[type="checkbox"]').is(':checked')) {
      idArray.push(row.find('td:first').text());
    }
  });
  $.ajax({
    url: '@Url.Action("SaveEntry", "Journal")';
    type: 'post'
    traditional: true,
    data: { values: idArray }
  }) 
});

控制器

代码语言:javascript
复制
public ActionResult SaveEntry(string[] values) // or int[] values if the ID is typeof int
{
}
票数 1
EN

Stack Overflow用户

发布于 2014-11-26 22:40:39

您最想要的是jquery序列化并发布您的表单。请看下面的博客文章,使用jQuery提交.NET MVC表单

票数 1
EN

Stack Overflow用户

发布于 2014-11-26 22:57:24

请更改您的最终功能:

代码语言:javascript
复制
    finalize = function() 
    {
          var tableData = "";
          $('#results').find('tr').each(function() {
            var row = $(this);
            if (row.find('input[type="checkbox"]:checked')) 
            {
              tableData = tableData + row.find('td:first > a').text() + '\n'; 
            }
          });

          //$.post("/Journal/SaveEntry", tableData); // parse json at your controller

          alert(tableData);
        };
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27160000

复制
相关文章

相似问题

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