【问题标题】:MVC3 Dynamic list update issueMVC3 动态列表更新问题
【发布时间】:2011-12-28 08:59:56
【问题描述】:

我有一个动态列表,我需要将视图中的选定项目返回给控制器。我检查了链接CheckboxList in MVC3 View and get the checked items passed to the controller 问题是我有一个动态列表,我需要水平显示它,所以我正在使用

<table>
  <tr>
  @foreach (var item in mylist)
  {
  <td><img src='@item.PictureUrl'/><br />@Html.CheckBox(@item.Id,@item.checkedin)@item.Name</td>
 }
 </tr>
</table>

我也有一个相同形式的文本区域。

在控制器 post 方法中,我可以访问 textarea 值,但不能访问列表或选中的项目。请帮忙。

或者有没有其他更好的方法来显示我的列表并取回清单项目?

我是 MVC 的新手,任何帮助将不胜感激。

谢谢

【问题讨论】:

标签: asp.net asp.net-mvc-3 list dynamic checkbox


【解决方案1】:

使用 JQuery 是最好的方法: 1- 下载 Jquery.json.js 并将其添加到您的视图中:

 <script src="../../Scripts/jquery.json.js" type="text/javascript"></script>

2- 为所有复选框添加一个“.cssMyClass”,以便您可以通过它们的 css 类获取值:

 <script type="text/javascript" >
       $(document).ready(function () {
           $("#btnSubmit").click(sendValues);
         });

     function populateValues()
     {
         var data = new Array();
         $('.myCssClas').each(function () {
             if ($(this).attr('checked')) {
                 var x = $(this).attr("value");
                 data.push(x);
             }
         }); 

         return data;
     }

     function sendValues() {
         var data = populateValues();
               $.ajax({
                   type: 'POST',
                   url: '@Url.Content("~/Home/Save")',
                   data: $.json.encode(data),
                   dataType: 'json',
                   contentType: 'application/json; charset=utf-8',
                   success: function () { alert("1"); }
               });

       } 



 </script>

如您所见,我已将所有选定的值添加到数组中,并通过 ajax 将其传递给“主页”控制器的“保存”操作
*- 在控制器中,您可以通过添加数组作为参数来接收值:

 [HttpPost]
        public ActionResult Save(int[] val)
        {

我搜索了太多,但显然这是唯一的解决方案。如果您找到更好的解决方案,请告诉我。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-20
    相关资源
    最近更新 更多