asp.net MVC3 中的空引用错误

发布于 2024-11-03 04:18:25 字数 151 浏览 0 评论 0原文

我在我的 asp.net MVC 3 视图中使用以下行。

@Model.AuthorizedAgent.Person.FirstName

但我收到错误,因为 AuthorizedAgent 为空。我怎样才能避免这个错误?

I am using following line in my asp.net MVC 3 view.

@Model.AuthorizedAgent.Person.FirstName

But I am getting error because AuthorizedAgent is null. How can I avoid this error ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

愿与i 2024-11-10 04:18:25

您可以使用具有以下属性的视图模型:

@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; }

You could use a view model with the following property:

@Html.DisplayFor(x => x.AuthorizedAgentFirstName)

and then have the controller perform the necessary tests and populate the property accordingly:

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);
}

And in order to provide an alternate text of the value is null you could use the DisplayFormat attribute:

[DisplayFormat(NullDisplayText = "EMPTY")]
public string AuthorizedAgentFirstName { get; set; }
我的奇迹 2024-11-10 04:18:25

这里你有两个选择。首先是确保模型具有价值。如果没有看到你的代码,我不知道这是否应该始终具有价值。另一个选项是有条件地获取值,您可以在 ASP.NET 和 Razor 视图引擎中轻松完成此操作。

You have two options here. The first is to ensure the model has a value. Without seeing your code, I have no clue whether this should always have a value or not. The other option is conditionally grabbing the value, which you can do easily in both ASP.NET and Razor view engines.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文