Mvc 列出嵌套在 Viewmodel 中的多个视图

Posted

技术标签:

【中文标题】Mvc 列出嵌套在 Viewmodel 中的多个视图【英文标题】:Mvc List Multiple Views Nested in Viewmodal 【发布时间】:2016-11-23 10:01:23 【问题描述】:

大家好,你能帮我弄清楚如何在单个视图上列出嵌套的视图模型

这是我的带有嵌套 4 个视图的视图模型,其中包含 4 个不同的表数据。正如您在下面看到的“KentselDonusumViewModel”是主视图模型

public class KentselDonusumViewModel
    
       public IList<agaclarViewModal> agaclarViewModal  get; set; 
        public IList<fotografViewModal> fotografViewModal  get; set; 
        public parselViewModal parselViewModal  get; set; 
        public MahalleViewModal MahalleViewModal  get; set; 

    
    public class agaclarViewModal
    
        public int agac_id  get; set; 
        public string agac_turu  get; set; 
        public string yas_araligi  get; set; 
        public int fiyat  get; set; 
        public int parsel_id  get; set; 
        public virtual parselViewModal parsel  get; set; 
    
    public class fotografViewModal
    
        public int fotograf_id  get; set; 
        public string fotograf_adi  get; set; 
        public string fotograf_url  get; set; 
        public int parsel_id  get; set; 
        public virtual parselViewModal parsel  get; set; 
    
    public partial class parselViewModal
    
        public int parsel_id  get; set; 
        public int mahalle_id  get; set; 
        public int ada_no  get; set; 
        public int parsel_no  get; set; 
        public int parsel_alani  get; set; 
        public int kaks  get; set; 
        public int insaat_alani  get; set; 
        public virtual ICollection<agaclarViewModal> agac  get; set; 
        public virtual ICollection<fotografViewModal> fotograf  get; set; 
        public virtual MahalleViewModal MahalleViewModal  get; set; 

    
    public partial class MahalleViewModal
    
        public int mahalle_id  get; set; 
        public string mahalle_adi  get; set; 
        public virtual ICollection<parselViewModal> parsel  get; set; 
     

还有我的控制器

 public ActionResult Listele()
    
        var parselModal = (from p in db.parsel select new parselViewModal 
                                                        ada_no=p.ada_no,
                                                        mahalle_id=p.mahalle_id,
                                                        insaat_alani=p.insaat_alani,
                                                        parsel_alani=p.parsel_alani,
                                                        kaks=p.kaks,
                                                        parsel_id=p.parsel_id,
                                                        parsel_no=p.parsel_no
        ).FirstOrDefault();
        var mahalleModal = (from m in db.mahalle
                           select new MahalleViewModal
                           
                             mahalle_id=m.mahalle_id,
                             mahalle_adi=m.mahalle_adi                                  
                           ).FirstOrDefault();

        var viewModal = new KentselDonusumViewModel
        
            parselViewModal=parselModal,
            MahalleViewModal=mahalleModal,              
            agaclarViewModal = new List<agaclarViewModal>(),
            fotografViewModal=new List<fotografViewModal>()

        ;
        return View(viewModal);

这里看起来不错,但我不知道如何将这些人用于查看

你能帮忙吗?谢谢。

【问题讨论】:

【参考方案1】:

是的,您可以轻松使用它,在您的视图中尝试以下 coden-ps 的类似操作

@for (int i = 1; i < Model.agaclarViewModal.Count; i++)

 <label class="control-label font-weight     none">@Model.agaclarViewModal[i].yas_araligi</label> <br />

告诉我,这对你有帮助吗....

【讨论】:

感谢您的回答,但我不明白您所说的“DefineMBPureMixModel”是什么意思实际上我的主要问题是将 和单个对象列出到单个视图中。我的意思是我可以将视图页面用作: foreach (var item in Modal) item.id ... 但我也有来自另一个视图的单个对象,我希望它显示在同一页面中,如 html.Display(x =>x.somedata> 希望我能解释一下自己 哎呀..这是我的模型名称..ohk..如果您的模型具有 List。您可以使用 foreach 并且对于具有相同模型的单个变量,您可以使用 Html.DisplayFor( x=>x.somedata)..试试这个你会得到解决方案 您好,我会尽快尝试

以上是关于Mvc 列出嵌套在 Viewmodel 中的多个视图的主要内容,如果未能解决你的问题,请参考以下文章

Asp MVC angularjs 使用 viewmodel 在视图上嵌套 ng-repeat

将表数据映射到 asp .Net MVC 中的 ViewModel 列表

你能帮忙解决这个 MVC ViewModel 问题吗?

MVC 中的 ViewModel 是啥?

使用单一视图模型在 MVC Razor 视图上发布多个表单

一个ViewModel,多个Activity