【问题标题】:Html.DisplayNameFor not show data (.net mvc)Html.DisplayNameFor 不显示数据(.net mvc)
【发布时间】:2017-01-28 14:14:09
【问题描述】:

我有一个提交给 View 的运行模型。

public class Run
{
    public List<Car> cars{get; set;}
    public Bike bike{get; set;}
}

public class Car
{
    public name  {get; set;}
    public Model {get; set;}
}

public class Bike
{
    public name  {get; set;}
    public Model {get; set;}
}

在我看来,我想显示汽车名称列表。

@Html.DisplayNameFor(model => model.cars.Name)

在表头中我正在尝试这个。

这不起作用。它说缺少参考资料?!

在我看来,我能够显示所有模型数据。但我就是无法显示标题文字

在我看来我也有

@using //Namespace to model folder

怎么了?

【问题讨论】:

  • 你能分享错误信息和部分视图代码
  • 您的 List 可能为空。尝试在构造函数或其他地方初始化它
  • model.cars.Name 尝试访问 List&lt;Car&gt;NameList&lt;Car&gt; 没有 Name。如果您想要 List&lt;Car&gt; 中包含的所有事物的名称,请遍历 List&lt;Car&gt;
  • @Html.DisplayNameFor(m =&gt; m.cars.First().Name)

标签: c# asp.net-mvc asp.net-mvc-4 asp.net-mvc-3


【解决方案1】:

我认为你的汽车是空的。你有没有检查天气计数是> 0

 @ if (Model.Cars!=null &&  Model.Cars.Any())
  {


    @foreach (var item in Model.Cars)
    {
        @Html.DisplayNameFor(i=> i.Name)
    }
  }

最佳实践是在您的模型中使用这样的方法以避免空引用错误

public class Run
{
    public Run()
     {
        cars = new List<Car>()
     }
    public List<Car> cars{get; set;}
    public Bike bike{get; set;}
}

【讨论】:

  • @Html helpers 如果他们尝试访问的内容是null,则可以正常工作。 i =&gt; i.Name 内的 foreach (var item) 也没有意义。
  • 嗨@GSerg,你是对的,但我有一个 if 语句,它检查它是否有任何汽车,然后循环遍历它。在我的答案中也更新了
猜你喜欢
  • 2015-03-13
  • 2016-10-01
  • 2022-01-12
  • 1970-01-01
  • 1970-01-01
  • 2018-12-24
  • 1970-01-01
  • 2021-10-12
  • 1970-01-01
相关资源
最近更新 更多