Ошибка нулевой ссылки в asp.net MVC3 - PullRequest
0 голосов
/ 26 апреля 2011

Я использую следующую строку в моём представлении asp.net MVC 3.

@Model.AuthorizedAgent.Person.FirstName

Но я получаю ошибку, потому что AuthorizedAgent имеет значение null.Как я могу избежать этой ошибки?

Ответы [ 2 ]

1 голос
/ 26 апреля 2011

Вы можете использовать модель представления со следующим свойством:

@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; }
0 голосов
/ 26 апреля 2011

У вас есть два варианта здесь. Первое - убедиться, что модель имеет ценность. Не видя ваш код, я понятия не имею, должно ли это всегда иметь значение или нет. Другой вариант заключается в получении значения по условию, что можно легко сделать как в механизмах просмотра ASP.NET, так и в Razor.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...