如何将复杂的对象集合传递给MVC中的控制器

开发工具

我是MVC的新手,对于这个初学者的问题感到抱歉。我有以下模型类:

public class ReturnBookHedModel
{

    public int RefferenceID { get; set; }
    public int BorrowedRefNo { get; set; }
    public int MemberId { get; set; }
    public DateTime ReturnDate { get; set; }
    public bool IsNeedToPayFine { get; set; }       
    public DateTime CurrentDate { get; set; }

    public virtual List<ReturnBookDetModel> RetunBooks { get; set; }
    public virtual MemberModel member { get; set; }
}

public class ReturnBookDetModel
{

    public int BookID { get; set; }
    public int RefferenceID { get; set; }
    public bool IsReturned { get; set; }
    public virtual ReturnBookHedModel ReturnBookHed { get; set; }
    public virtual BookModel book { get; set; }
}

我有以下控制器方法:

    public ActionResult SaveReturnBook(int refNo)
    {
        ReturnBookHedModel model = ReturnBookFacade.GetReturnBookBasedOnRefference(refNo);
        return View(model);
    }

    //
    // POST: /ReturnBook/Create

    [HttpPost]
    public ActionResult SaveReturnBook(ReturnBookHedModel model)
    {
        try
        {
            // TODO: Add insert logic here

            return RedirectToAction("Index");
        }
        catch
        {
            return View();
        }
    }

在我的模型中,我定义如下:

     <div class="control-label">
          @Html.LabelFor(model => model.BorrowedRefNo)
          @Html.TextBoxFor(model => model.BorrowedRefNo, new { @class = "form-control" ,@readonly = "readonly" })
          @Html.ValidationMessageFor(model => model.BorrowedRefNo)

     </div>
      // rest of the header details are here
    <table>
        <tr>                                   
            <th>
                @Html.DisplayNameFor(model => model.RetunBooks.FirstOrDefault().IsReturned)
             </th>
             <th>
                 @Html.DisplayNameFor(model => model.RetunBooks.FirstOrDefault().BookID)
             </th>
              <th>
                 @Html.DisplayNameFor(model => model.RetunBooks.FirstOrDefault().book.BookName)
              </th>
              <th></th>
            </tr>

            @foreach (var item in Model.RetunBooks)
             {
                <tr >                                        
                   <td>
                       @Html.CheckBoxFor(modelItem => item.IsReturned)
                   </td>
                   <td>
                       @Html.HiddenFor(modelItem => item.BookID);
                       @Html.DisplayFor(modelItem => item.BookID)
                    </td>
                    <td>
                       @Html.DisplayFor(modelItem => item.book.BookName)
                     </td>
                  </tr>
                }
</table>

这很好用..但是这些表的详细信息(复杂的对象)不在控制器的post方法中。当我搜索时,发现可以按以下方式使用此详细数据:但我不能按如下方式使用它。

  @for (var i = 0; i < Model.RetunBooks.Count; i++) 
   {
      <tr>                                        
          <td>
              @Html.CheckBoxFor(x => x.RetunBooks.)
           </td>                                        
       </tr>
    }

我如何将这些信息发送给控制器

扁桃体

为了将集合发布回去,您需要按照以下方式对它们进行索引,以便模型绑定器将其拾取。

这应该可以解决问题:

 @for (var i = 0; i < Model.RetunBooks.Count; i++) 
 {
      ...
      @Html.CheckBoxFor(model => Model.RetunBooks[i].IsReturned)
      ...
 }

复杂对象需要以上述方式进行索引。

有关更多信息,请参见此处:

http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx/

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将复杂的参数传递给控制器?

来自分类Dev

如何将复杂的JSON对象传递给ASP.net控制器

来自分类Dev

如何将多个集合作为参数从 ASP.NET MVC 中的控制器传递给视图?

来自分类Dev

在 MVC 5 中如何将表对象数据作为列表传递给控制器视图模型?

来自分类Dev

如何将多个Json对象传递给ASP.net MVC控制器?

来自分类Dev

如何将javascript对象传递给C#MVC 4控制器

来自分类Dev

如何将List <model>传递给MVC 4中的控制器

来自分类Dev

如何将 Ajax Json 对象传递给 .Net Core 中的控制器类?

来自分类Dev

如何将数据从日期选择器中的视图传递给 mvc 中的控制器

来自分类Dev

如何将MVC DropDownList的字符串值作为参数传递给控制器中的方法?

来自分类Dev

如何将serializeArray作为json传递给MVC控制器

来自分类Dev

如何将单击的单选按钮的值传递给Spring MVC控制器?

来自分类Dev

如何将@RequestBody值传递给转发的控制器Spring MVC

来自分类Dev

MVC如何将数组(Guid CustomerID)和单个值传递给控制器

来自分类Dev

如何将div元素作为参数传递给MVC控制器?

来自分类Dev

MVC4-如何将IPagedList模型传递给控制器

来自分类Dev

如何将serializeArray作为json传递给MVC控制器

来自分类Dev

如何将文件夹路径传递给MVC控制器

来自分类Dev

如何将ID从角度视图传递给ASP.NET MVC控制器?

来自分类Dev

如何将ajax中的字符串列表传递给控制器mvc。我无法访问控制器值

来自分类Dev

如何将控制器传递给函数

来自分类Dev

如何将链接ID传递给控制器?

来自分类Dev

如何将变量$ data传递给控制器?

来自分类Dev

如何将stateParams传递给角度控制器?

来自分类Dev

如何将HTML代码传递给控制器

来自分类Dev

如何将列表从控制器传递给jsp?

来自分类Dev

如何将值传递给导航控制器

来自分类Dev

如何将多个相同类型的对象传递给控制器?

来自分类Dev

如何将实体对象从自定义验证注释传递给控制器

Related 相关文章

  1. 1

    如何将复杂的参数传递给控制器?

  2. 2

    如何将复杂的JSON对象传递给ASP.net控制器

  3. 3

    如何将多个集合作为参数从 ASP.NET MVC 中的控制器传递给视图?

  4. 4

    在 MVC 5 中如何将表对象数据作为列表传递给控制器视图模型?

  5. 5

    如何将多个Json对象传递给ASP.net MVC控制器?

  6. 6

    如何将javascript对象传递给C#MVC 4控制器

  7. 7

    如何将List <model>传递给MVC 4中的控制器

  8. 8

    如何将 Ajax Json 对象传递给 .Net Core 中的控制器类?

  9. 9

    如何将数据从日期选择器中的视图传递给 mvc 中的控制器

  10. 10

    如何将MVC DropDownList的字符串值作为参数传递给控制器中的方法?

  11. 11

    如何将serializeArray作为json传递给MVC控制器

  12. 12

    如何将单击的单选按钮的值传递给Spring MVC控制器?

  13. 13

    如何将@RequestBody值传递给转发的控制器Spring MVC

  14. 14

    MVC如何将数组(Guid CustomerID)和单个值传递给控制器

  15. 15

    如何将div元素作为参数传递给MVC控制器?

  16. 16

    MVC4-如何将IPagedList模型传递给控制器

  17. 17

    如何将serializeArray作为json传递给MVC控制器

  18. 18

    如何将文件夹路径传递给MVC控制器

  19. 19

    如何将ID从角度视图传递给ASP.NET MVC控制器?

  20. 20

    如何将ajax中的字符串列表传递给控制器mvc。我无法访问控制器值

  21. 21

    如何将控制器传递给函数

  22. 22

    如何将链接ID传递给控制器?

  23. 23

    如何将变量$ data传递给控制器?

  24. 24

    如何将stateParams传递给角度控制器?

  25. 25

    如何将HTML代码传递给控制器

  26. 26

    如何将列表从控制器传递给jsp?

  27. 27

    如何将值传递给导航控制器

  28. 28

    如何将多个相同类型的对象传递给控制器?

  29. 29

    如何将实体对象从自定义验证注释传递给控制器

热门标签

归档