Как добавить элемент в «Список <EntityType>в модели» с TextBoxFor, чтобы облегчить ненавязчивую проверку клиента MVC3? - PullRequest
0 голосов
/ 20 декабря 2011

Я использую List в моей модели представления, которую я хочу проверить в представлении (используя представление Razor на MVC3), используя ненавязчивую проверку клиента с моделями.

Я пытаюсь собрать новую информацию о человеке из формы с проверкой и затем добавить ее в список в модели представления. Но с помощью TextBox для меня нет выбора, кроме как использовать определенный элемент в коллекции, который не должен работать.

Любая помощь приветствуется.

Заранее спасибо.

public class Person
{
        [Required(ErrorMessage="First name is a Required Field")]        
        public string FirstName
        { get; set; }

        [Required(ErrorMessage = "Last name is a Required Field")]
        public string LastName { get; set; }

        [Required(ErrorMessage = "Primary E-Mail is a Required Field")]
        public string PrimaryEmail { get; set; }

        public string PrimaryPhoneNumber { get; set; }
}

1 Ответ

1 голос
/ 13 апреля 2012

Я сделал это, добавив свойство в ViewModel, которое предоставляет новый экземпляр лица.

public class PeopleModel
{
    public IEnumerable<Person> People { get; set; }
    public Person NewPerson { get; set; }
}

Вам даже не нужно присваивать ему значение, достаточно наличия свойства.

public ActionResult Index()
{
    var data = new PeopleModel {People = getPeople()};
    return View(data);
}

Тогда по вашему мнению:

@using(Html.BeginForm("MakeNew", "People", FormMethod.Post))
{
    @Html.LabelFor(m => m.NewPerson.FirstName)
    @Html.TextBoxFor(m => m.NewPerson.FirstName)
}

и, наконец, в вашем действии, которое получает новые данные:

public ActionResult MakeNew(Person newPerson)
{
    return Content(newPerson.FirstName);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...