Как связать данные из базы данных в DropDownList в режиме редактирования MVC? - PullRequest
0 голосов
/ 12 апреля 2019

Я хотел бы связать выбранные данные значения из модели с раскрывающимся списком при просмотре, но все еще не работает.

В раскрывающемся списке по-прежнему выбрано «Выбрать бизнес-единицу».

Какие идеи у вас есть предложения мне?

Заранее благодарю за помощь.

Это пользовательская модель

public class UserModel
    {

        //public static ClaimsIdentity Identity { get; set; }
        [Key]
        public Int64 UserId { get; set; }
        [Required]
        public string UserCode { get; set; }
        [Required]
        public string UserName { get; set; }
        [Required]
        public string UserEmail { get; set; }
        [Required]
        public string UserPassword { get; set; }
        [Required]
        public string UserRole { get; set; }
        [Required]
        public string UserStatus { get; set; }
        [Required]
        public DateTime LastLogin_Date { get; set; }
        [Required]
        public string Create_By { get; set; }
        [Required]
        public DateTime Create_Date { get; set; }
        [Required]
        public string Update_By { get; set; }
        [Required]
        public DateTime Update_Date { get; set; }

        public string BU_Code { get; set; }
        public virtual BusinessUnitModel BusinessUnits { get; set; }
    }

Это BusinessUnitModel

public class BusinessUnitModel
    {
        public BusinessUnitModel()
        {
            this.Users = new HashSet<UserModel>();
            this.Departments = new HashSet<DepartmentModel>();
        }

        [Key]
        public string BU_Code { get; set; }
        [Required]
        public string BU_Name { get; set; }
        [Required]
        public string BU_Prefix { get; set; }
        [Required]
        public string BU_Type { get; set; }
        [Required]
        public string BU_Status { get; set; }
        [Required]
        public string Create_By { get; set; }
        [Required]
        public DateTime Create_Date { get; set; }
        [Required]
        public string Update_By { get; set; }
        [Required]
        public DateTime Update_Date { get; set; }

        public virtual ICollection<UserModel> Users { get; set; }
        public virtual ICollection<DepartmentModel> Departments { get; set; }
        public virtual ICollection<StockModel> Stocks { get; set; }
    }

Это пользовательский контроллер

* Я должен был изменить код с ViewBag.businessUnits ==> ViewBag.businessUnit *

public IActionResult Modify(Int64 id)
        {
            UserModel users = _user.GetAll(id);
            ViewBag.businessUnit = new SelectList(_businessUnit.GetAll("A").Select(x => new
            {
                Value = x.BU_Code,
                Text = x.BU_Name
            }), "Value", "Text", users.BU_Code);

            return View(users);
        }

Это пользователь

<div class="col">
@Html.LabelFor(model => model.BusinessUnits, htmlAttributes: new { @class = "control-label" })
@Html.DropDownListFor(model => model.BusinessUnits, (IEnumerable<SelectListItem>)ViewBag.businessUnit, "Select Business Unit", new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.BusinessUnits)
</div>

1 Ответ

0 голосов
/ 12 апреля 2019

Переменная ViewBag должна иметь значение ViewBag.businessUnit , а не ViewBag.businessUnits в действии Изменить пользовательского контроллера.Пожалуйста, смотрите код контроллера пользователя ниже.

public IActionResult Modify(Int64 id)
        {
            UserModel users = _user.GetAll(id);
            ViewBag.businessUnit = new SelectList(_businessUnit.GetAll("A").Select(x => new
            {
                Value = x.BU_Code,
                Text = x.BU_Name
            }), "Value", "Text", users.BU_Code);

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