MVC获取选中复选框的表中行中的列的值,并使用JQuery存储在列表中

MVC获取选中复选框的表中行中的列的值,并使用JQuery存储在列表中,jquery,sql,asp.net-mvc,visual-studio-2013,Jquery,Sql,Asp.net Mvc,Visual Studio 2013,我正在进行我的第一个大型mvc项目,我很难确定如何为表中的每一行获取日期列的值,其中选中/选择了行复选框并存储在列表中(最好是在我的HomeController中) 我发现: 这让我尝试了下面的一些变化 $("#thechecked").click(function(){ var closestTr = $(':checkbox:checked').closest('tr'); alert(closestTr); }); 但我能得到的只是[对象] 我的表(可以有几千行): 控制器: p

我正在进行我的第一个大型mvc项目,我很难确定如何为表中的每一行获取日期列的值,其中选中/选择了行复选框并存储在列表中(最好是在我的HomeController中)

我发现:

这让我尝试了下面的一些变化

$("#thechecked").click(function(){
var closestTr = $(':checkbox:checked').closest('tr');
alert(closestTr);
});
但我能得到的只是[对象]

我的表(可以有几千行):

控制器:

    public ActionResult Index(string filtername)        
    {
        HttpCookie cookieUser = Request.Cookies["loginCookie"];
        ViewBag.Username = Server.HtmlEncode(cookieUser.Value);

        var filterresults = from m in db.UserInfoes
                            select m;

        filterresults = filterresults.Where(x => x.UserCode.ToString().Contains(filtername)).OrderBy(x => x.UserCode);
        CheckDownloaded();
        return View(filterresults);
    }

为了获得选中复选框的每一行的
CreationDateTime
值,您可以使用(我假设
#选中的
必须是按钮或页面上其他元素的id)

这可能取决于
DisplayTemplate
实际呈现的内容,最好使用以下方法在表格单元格中添加值

<td>
  @item.CreationDateTime
</td>

@item.CreationDateTime
控制器

[HttpPost]
public JsonResult SaveDates(IEnumerable<DateTime> dates)
{
  foreach(DateTime date in dates)
  {
    // Do something with the date
  }
  return Json(someReturnValue);
}
[HttpPost]
公共JsonResult保存日期(IEnumerable dates)
{
foreach(日期时间日期,以日期为单位)
{
//对日期做点什么
}
返回Json(someReturnValue);
}

您指出您的表可能“有几千行”。如果是这样的话,你应该考虑一次只显示20-50行来提高性能。

你想用“代码> JavaScript < /代码> /<代码> jQuery < /代码>或在服务器上回发来访问客户端上的检查记录列表。我要注意的一点是,如果回发,模型数据将不会在显示时保持不变,因此没有用于填充回发模型的
EditorFor
。其次,您显示的方式(即使这些编辑器被禁用)不会正确地发回模型,
IEnumerables
通常需要通过索引访问属性,例如
model[index].propertyName
不适用于带有
项的每个项目。propertyName
注意:日期对应于手机上测试运行的一行数据。我想我只需要访问客户端的检查记录列表,因为在我得到返回的日期列表后,我将使用这些日期从模型中检索关于该日期执行的测试的其他详细信息(通过homecontroller中的linq查询,该查询以3列比较的形式显示,每列都是该手机上的测试)希望这有意义,我对客户机-服务器格式的想法还很陌生:)很好,上面的JQuery返回结果,我现在将它们放入一个数组中,我现在要寻找的首先是,我想使用ajax将这个数组传递给控制器,并将其放入控制器中的一个列表中。你能解释一下怎么做吗?编辑你的问题以包含你的控制器方法的签名我已经用我需要列表的控制器(主/索引)更新了。thanksIs
CreationDateTime
日期时间的类型
?i、 e.是否要将
DateTime
值数组传递给控制器?您的linq查询建议了其他内容!您是想发布这些值并留在页面上,还是想重定向?
$("#thechecked").click(function() {
  var selectedDates = new Array();
  $('.checks:checked').each(function() {
    var createDate = $(this).closest('tr').children('td').eq(1).text();
    selectedDates.push(createDate); // add to array
  });
  $.ajax({
    type: "POST",
    url: '@Url.Action("SaveDates")';
    dataType: "json",
    traditional: true,
    data: {dates: selectedDates },
    success: function(data) {
      // do something with the returned value?
    }
  });
});
<td>
  @item.CreationDateTime
</td>
[HttpPost]
public JsonResult SaveDates(IEnumerable<DateTime> dates)
{
  foreach(DateTime date in dates)
  {
    // Do something with the date
  }
  return Json(someReturnValue);
}