У меня есть следующий тип, который я использую, чтобы расширить другой тип, который используется на протяжении всей нашей системы:Моя модель Razor равна нулю на сообщение
public class SystemUser : User
{
public int? RoleId
{
get { return this.Relationhip.FirstOrDefault().TypeList.FirstOrDefault().Id();}
set { RoleId = value; }
}
public Role _Role
{
get { return (Role)RoleId; }
set { RoleId = (int)value; }
}
public SelectListItem[] RolesList { get; set; }
public bool IsA(params Role[] roles)
{
return new List<Role>(roles).Any(v => v.Equals(_Role));
}
public bool IsNotA(params Role[] roles)
{
return !(new List<Role>(roles).Any(v => v.Equals(_Role)));
}
}
Я в основном с помощью этого типа, чтобы действовать в качестве контейнера для данных из нашей базы данных и передачи их от контроллера к нашему представлению в виде @model. Представление Получает заселение просто отлично, но после того, как я модифицирую модель с помощью полей @ Html.LabelFor() и перейдя эти данные на контроллер, который мы используем для сохранения обновленных данных в базе данных, модель равна нулю. Если я пройду через POST, я получаю исключение NullReferenceException на получателе ROleId в моем классе SystemUser. Обратите внимание на свойство _Role; Известно, что если свойство класса имеет то же имя, что и его Тип, модель будет отправляться пустым в контроллер, но я уже исправил это.
Это мясо Вид:
@model SystemUser
@using (Html.BeginForm("Usr", "Mr", FormMethod.Post, new {@autocomplete="off"}))
{
//Fields removed for sake of simplifying stackoverflow post
<input class="button green-bg" type="submit" value="Save" />
<input class="button gray-bg" type="button" onclick="location.href='@Url.Action("View", "Mr")'" value="Cancel" />
}
Любая помощь здесь будет весьма признателен.
шоу полей, а также и действие контроллера, а –
только полей для хелперов (за исключением дисплея и этикетки) привязаны к модели.убедитесь, что поля, которые вы хотите вернуть, находятся в одном –
. Как выглядит ваш контроллер? Имеет ли метод с тем же именем, что и [Usr], и метод, украшенный атрибутом [HttpPost]? И действительно ли контроллер назван [Mr]? – ajawad987