我在asp.net MVC 3视图中使用以下行。
@Model.AuthorizedAgent.Person.FirstName
但是我收到错误,因为AuthorizedAgent为null。如何避免此错误?
答案 0 :(得分:1)
您可以使用具有以下属性的视图模型:
@Html.DisplayFor(x => x.AuthorizedAgentFirstName)
然后让控制器执行必要的测试并相应地填充属性:
public ActionResult Foo()
{
SomeModel model = ...
SomeViewModel vm = new SomeViewModel();
// TODO: refactor this part to a mapping layer. AutoMapper is
// a good tool for the job
if (model.AuthorizedAgent != null && model.AuthorizedAgent.Person != null)
{
vm.AuthorizedAgentFirstName = model.AuthorizedAgent.Person.FirstName;
}
return View(vm);
}
为了提供值的替代文本为null,您可以使用DisplayFormat
属性:
[DisplayFormat(NullDisplayText = "EMPTY")]
public string AuthorizedAgentFirstName { get; set; }
答案 1 :(得分:0)
这里有两种选择。首先是确保模型具有值。没有看到你的代码,我不知道这是否应该总是有一个值。另一个选项是有条件地获取值,您可以在ASP.NET和Razor视图引擎中轻松完成。