.NET MVC: как связать частичное представление дочерней модели (динамически загружаемой) с родительской моделью при отправке - PullRequest
0 голосов
/ 07 апреля 2019

Модель пользователя:

 public int id { get; set; }
 public string user_name { get; set; }
 public int user_rol { get; set; }
 [ForeignKey("company")]
 [Required]
 public int id_company { get; set; }
 public virtual Company company { get; set; }

Модель компании:

 public int id { get; set; }
 public string company_name { get; set; }
 //other properties here//

UserViewModel:

 public int id { get; set; }
 public int user_name { get; set; }
 public int user_rol { get; set; }
 [ForeignKey("companyExisting")]
 public int id_company_existing { get; set; }
 [ForeignKey("companyNew")]
 public int id_company_new { get; set; }
 public virtual companyExisting { get; set; }
 public virtual companyNew { get; set; }

Пользователь всегда связан с компанией, но еслиВыбранная роль - «а», необходимо выбрать существующую компанию.если rol - «b», то должна быть создана новая компания.(именно поэтому я создал модель представления с 2 компаниями, обе необязательные, в то время как в модели User требуется только одно свойство для компании).

Итак, в Users / Create, когда изменяется выпадающий список user_rol, если выбранный rol равен "b", я отправляю ajax-запрос, чтобы получить частичное представление для новой компании с сервера, и показать его пользователю:

public ActionResult addNewCompany () {
    return PartialView("~/Views/Shared/EditorTemplates/Company.cshtml", new Company());
}

Это работает нормально, чтобы получить частичное представление в браузере, проблема в том, что частичное представление не имеет префикса модели (его имена полей похожи на «company_name» вместо «user»).company_name ", поэтому при отправке компания не получает привязку к пользователю.

Итак, как правильно это сделать?

...