我有一个人类:
public class Person {
public long Id { get; set; }
public string LastName { get; set; }
public string FirstName { get; set; }
public string PhoneNo { get; set; }
public string FaxNo { get; set; }
public int Age { get; set; }
public DateTime BirthDate { get; set; }
}
人物实例是这样的:
IEnumerable<Person> people = new List<Person>() { /* Define people */ }
所以我需要获取Person Use People的属性名称,当然我可以使用它:
string fr = people.FirstOrDefault().FirstName;
那么people
没有Person
的任何实例的情况呢?
我知道什么时候我们没有Person
所以我们没有任何FirstName
但我需要在ASP.NET MVC的列表视图中访问它我希望像这样使用:
@Html.DisplayFor(model => model.LastName)
有人对此有任何想法吗?
答案 0 :(得分:3)
如果people
为空,则FirstOrDefault()
将返回null,因此您将获得空引用异常。
目前还不清楚你想要在这里发生什么,但如果你只想要null
,你可以使用:
string fr = people.Select(p => p.FirstName).FirstOrDefault();
这将首先进行投影 - 所以如果没有人,FirstOrDefault()
将返回null
,否则将返回第一个人的名字。
答案 1 :(得分:0)
这不是一个完整的答案,但我希望可以帮助,您可以定义一个空的Person
实例并使用如下所示:
@model IEnumerable<YourNameSpace.Models.Person>
@{
ViewBag.Title = "Index";
YourNameSpace.Models.Person p = new YourNameSpace.Models.Person();
}
并且:
@Html.LabelFor(x => p.FirstName)