【问题标题】:MVC View Model show Detail InformationMVC 查看模型显示详细信息
【发布时间】:2011-10-24 19:58:35
【问题描述】:

我希望这是有道理的。

我创建了一个类似下面的类,它使用了我在 View Model 中使用的 3 个表(TerrRp、RegMg、DistMg):

     public class RepViewModel  

{



    public IEnumerable<TerrRp> TerrRp { get; set; }
    public IEnumerable<RegMg> RegMg { get; set; }
    public IEnumerable<DistMg> DistMg { get; set; } 



}

我需要显示上述功能之一(TerrRp 表)的详细信息,但不知道如何操作,因为我无法访问
通过类似的东西(在这种情况下,我试图访问 Terr_ID):

<div class="display-label">Terr_ID</div>
<div class="display-field">
    @Html.DisplayFor(model => model.Terr_ID)
</div>

意思是,我如何告诉 DisplayFor 获取 TerrRp 表并显示 Terr_ID,因为我需要先访问 RepViewModel,然后是 TerrRp,然后是 Terr_ID?希望这是有道理的。

【问题讨论】:

    标签: model-view-controller detailsview


    【解决方案1】:

    显示关联对象的列表:

    使用带有标题的强类型视图

    @model namespace.RepViewModel  
    

    您应该能够通过 TerrRp 对象使用

    @foreach (var Rp in Model.TerrRp)
    {
        <div class="display-label">Terr_ID</div>
        <div class="display-field">
            @Html.DisplayFor(Rp  => Rp.Terr_ID)
        </div>
    }
    

    如果您认为应该只有一个对象 TerrRp 与 RepViewModel 关联,那么您可以在 IEnumerable 上使用 First() 或 FirstOrDefault() 方法

    <div class="display-label">Terr_ID</div>
    <div class="display-field">
        @Html.DisplayFor(model => model.TerrRp.FirstOrDefault().Terr_ID)
    </div>
    

    您可能希望对 Model.TerrRp 对象进行计数,以验证是否只有一个条目。

    【讨论】:

    • 感谢 AlexC,但由于详细信息仅适用于 1 条记录,是否还有其他方法可以解决此问题,或者这是如何编辑 ViewModel 记录的标准方法
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-06
    • 2020-09-05
    • 1970-01-01
    • 1970-01-01
    • 2016-07-05
    • 1970-01-01
    相关资源
    最近更新 更多