Не удается запросить LINQ для SQL в представлении asp.net MVC C # - PullRequest
0 голосов
/ 17 декабря 2011

Я хочу запросить пользователя, который успешно вошел в систему на веб-сайте:

Это то, что я сделал в моих представлениях:

var query = from i in Model.DataContext.Customers
            where i.WebAccount == User.Identity.Name
            select i;

Но это показывает ошибку Ссылка на объект неустановить экземпляр объекта, я понятия не имею, почему это так.Кто-нибудь знает об этом?Спасибо.

Ответы [ 2 ]

2 голосов
/ 17 декабря 2011

Есть несколько вопросов для обсуждения.

  1. Вам не следует запрашивать базу данных из View.Логика остается в контроллере.
  2. Вероятно, вы никогда не устанавливали свойство DataContext в вашей модели представления.Сообщение о том, что «ссылка на объект не установлена ​​на экземпляр объекта», относится к NullReferenceException, что означает, что вы пытаетесь получить доступ к нулевому значению.
  3. Снова смотрите # 1, это важно.
1 голос
/ 17 декабря 2011

socheata,

очень велика вероятность того, что ваш объект User.Identity может быть нулевым, если пользователь еще не вошел в систему (таким образом, вызов User.Identity.Name приведет к ошибке).

Итак, на ум приходит несколько подходов:

  • переместить эту логику из представления в ваш уровень обслуживания или действие вашего контроллера

  • создайте помощника html, который обеспечит функциональность, требуемую для представления.полезно, если это требуется для нескольких представлений

Есть, конечно, другие варианты, но это будет моей отправной точкой.

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