Модель пользователя:
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 ", поэтому при отправке компания не получает привязку к пользователю.
Итак, как правильно это сделать?