簡體   English   中英

在 mvc 中將兩個數據模型綁定到一個模型

[英]bind two data models to one model in mvc

我正在創建 MVC 5 應用程序,在此應用程序中,我使用一個 var 模型加入多個數據表並將該值綁定到“DiscussionPreview_Model”模型以列出數據

這是控制器類

   public ActionResult Discussion_Preview()
    {

        int Discussion_ID = 1;


        var discussion_preview = (from d in db.AB_Discussion
                                  where d.Discussion_ID == Discussion_ID
                                  join dc in db.AB_DiscussionComments on d.Discussion_ID equals dc.Discussion_ID
                                  join user_discussion in db.AspNetUsers on d.CreatedBy equals user_discussion.Id
                                  join user_comments in db.AspNetUsers on dc.CreatedBy equals user_comments.Id

                                  select new DiscussionPreview_Model
                                  {
                                      Disussion_ID = d.Discussion_ID,
                                      Discussion_CreateDate = d.CreatedDate,
                                      Discussion_CreateBy = user_discussion.UserName,
                                      Discussion_Title = d.Discussion_Name,
                                      Discussion_Description = d.Discription,
                                      Comment_ID = dc.Comment_ID,
                                      Comment_Description = dc.Comment_Discription,
                                      Comment_CreateDate = dc.CreatedDate,
                                      Comment_CreateBy = user_comments.UserName

                                  });


            return View(discussion_preview);
    }

這是我的“DiscussionPreview_Model”模型類

   public class DiscussionPreview_Model
    {

        DiscussionVM model1;
        CommentVM model2;

    }


    public partial class DiscussionVM
    {
        public int Disussion_ID { get; set; }
        public Nullable<System.DateTime> Discussion_CreateDate { get; set; }
        public string Discussion_CreateBy { get; set; }
        public string Discussion_Title { get; set; }
        public string Discussion_Description { get; set; }

        public IEnumerable<CommentVM> Comments { get; set; }

    }

    public partial class CommentVM
    {
        public int Comment_ID { get; set; }
        public Nullable<System.DateTime> Comment_CreateDate { get; set; }
        public string Comment_CreateBy { get; set; }
        public string Comment_Description { get; set; }
    }

這是查看頁面

 @model IEnumerable<prjkt.Models.DiscussionPreview_Model>

@{
    ViewBag.Title = "Discussion_Preview";
    Layout = "~/Views/Shared/_Layout.cshtml";
}


@foreach (var discussion in Model.DiscussionVM)
{

<h3>>@discussion.Discussion_Title</h3>

<div>@discussion.Discussion_Description</div>
<div>@discussion.Discussion_CreateDate</div>
}

@foreach (var item in Model.CommentVM)
{

    <fieldset>
        <legend></legend>


        <h4>Comments</h4>
        <div class="display-field">@item.Comment_Description</div>
        <div class="display-field">@item.Comment_CreateBy : @item.Comment_CreateDate </div>

    </fieldset>
}

但這不能正常工作,我試圖以多種方式克服這個問題

真的很感激可以建議一個強大的 linq 查詢方法

這在這里不起作用:

@foreach (var discussion in Model.DiscussionVM)

因為 Model.DiscussionVM 不是 IEnumerable<>

嘗試枚舉模型並訪問該集合中到達項目的 .DiscussionVM

@foreach (var item in Model)
{
<h3>@item.DiscussionVM.Discussion_Title</h3>

<div>@item.DiscussionVM.Discussion_Description</div>
<div>@item.DiscussionVM.Discussion_CreateDate</div>
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM