Метод контроллера ASP.NET MVC получает пустой экземпляр объекта вместо нулевого значения. Почему?C#

Место общения программистов C#
Ответить
Anonymous
 Метод контроллера ASP.NET MVC получает пустой экземпляр объекта вместо нулевого значения. Почему?

Сообщение Anonymous »

У меня есть формально выраженный метод контроллера IActionResult Index(object? obj) в проекте ASP.NET MVC. Если я вызываю его из главного меню из веб-интерфейса без каких-либо значений маршрута, он генерирует пустой объект входного параметра вместо нулевого значения, но почему?
Краткое объяснение: Одна часть моего проекта — это система управления сотрудниками. На индексной странице «Сотрудники» отображается список сотрудников в зависимости от области, к которой они принадлежат. А если ни один регион не выбран, отображаются все сотрудники. Когда страница Index вызывается в первый раз, выбор области отсутствует, поэтому я ожидаю, что переменная в методе контроллера будет иметь значение null.
Конкретно это означает, что мой метод контроллера выглядит следующим образом (примерно):

Код: Выделить всё

public IActionResult Index(Area? area)
{
if (area == null)
{
return View();
}
else
{
return View(area.Id);
}
}
И соответствующий класс Area, например:

Код: Выделить всё

public class Area
{
public int Id { get; set; }
public string Key { get; set; }
public string? Name { get; set; }
// ...
}
Я вызываю метод Index через:

Код: Выделить всё

Employees
Из-за отсутствия значений маршрута или чего-то подобного. Я ожидаю, что область переменных в моем методе контроллера == null. Но это пустой объект Area, как видно ниже (тем временем я пытался определить значение по умолчанию == null. Как вы можете видеть на скриншоте. Но это не так). тоже работает)
Значение площади во время выполнения:
[img]https://i .sstatic.net/OlwydCY1.png[/img]


Подробнее здесь: https://stackoverflow.com/questions/786 ... tead-of-th
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»