В настоящее время я пытаюсь реализовать раскрывающийся список с тем, что я бы назвал жестко заданными значениями. В принципе, я хочу иметь раскрывающийся список с выбором из трех возможных значений.Правильный способ реализации модели для раскрывающегося списка .Net Core
У меня есть в общей сложности 4 контроллера и представления, которые будут использовать это выпадающее меню. Я видел много примеров для MVC2 и MVC3, где люди жестко кодировали свои выпадающие списки в своих представлениях, и я лично не предпочитаю идти с быстрым и «грязным» исправлением, например.
У меня есть модель, содержащая следующее.
public class Status
{
public int id { get; set; }
public string status { get; set; }
public Status(int statusId, string statusName)
{
id = statusId;
status = statusName;
}
}
Статус должен быть в состоянии иметь любой из 3-х возможных значений:
Active
Inactive
Processing
Я думал о создании статуса с помощью этого метода я в настоящее время имею в своем классе статуса:
public static List<Status> getAllStatus()
{
List<Status> states = new List<Status>();
states.Add(new Status(1, "Active"));
states.Add(new Status(2, "Inactive"));
states.Add(new Status(3, "Processing"));
return states;
}
Мне не удалось выяснить, как использовать эту модель внутри моих контроллеров наряду с тем, как передать ее моим взглядам, и надеялся, что кто-то здесь узнает, как это сделать?
EDIT1:
Я предполагаю, что я забыл упомянуть, что я буду хранить выбранное значение в виде строки в моей базе данных, и я использую вид, который не имеет модели моего класса состояния, но скорее модель объекта, которую я буду хранить в своей базе данных (что может быть в случае объекта транспортного средства).
EDIT2:
У меня есть модель под названием клиента, который имеет некоторые из следующих значений:
public int CustomerID { get; set }
public string Email { get; set }
public string Phone { get; set }
public Status Status { get; set; }
В моей БД для моей модели клиента у меня есть строка, в которой я тусклый, чтобы хранить выбранный статус.
Таким образом, я не хочу изменять следующее выпадающее меню с помощью 3 опций, Inactive
, Active
и Processing
.
Однако я не хочу, чтобы закодировать это, на мой взгляд, как я буду нуждаться в его 8 различных взглядов и скопировать склеивание, что не очень гладкий код.
ли возможность использовать перечисление вместо класса, которые держат идентификатор + имя? В этом случае у вас есть EnumDropDownListFor –
Это можно сделать, но я не знаю, как это сделать. Я знаю, как создать перечисление, но проблема в том, что я буду хранить выбранное значение в виде строки в моей базе данных. – Zeliax
Речь идет о вашем контроллере, а не о вашем представлении. Вам это нужно как строка? Используйте .ToString(), когда вы передаете свой объект ViewModel свойству Model (или атрибуту, если он не является допустимым идентификатором ...) –