asp.net mvc - строго типизированные помощники - должен ли объект привязки рендеринга быть таким же, как объект публикации?
я вижу, что asp.net mvc 2 сильно помог мне с типизацией, и изначально смотрит на то, как он работает, я думаю, что, возможно, я делаю что-то не так в asp.net mvc 1 с точки зрения привязки данных для визуализации представления и отправки обратно на контроллер.
У меня часто есть разные объекты для рендеринга вида и отправки обратно в контроллер. это неправильно ?? Это кажется естественным, поскольку при рендеринге представления у вас часто есть модель представления, в которой есть списки для раскрывающихся списков и т. Д., Но для публикации требуется только те свойства, которые необходимы для отправки назад.
например, на пути к рендерингу моя view-модель может выглядеть так
public class PersonViewModel
{
public int Age;
public string FIrst;
public JobCategory[] JobCategories;
public Sport[] Sports;
public int NumberOfChildren;
}
в этом случае,jobCategories а такжеВиды спорта будет использоваться для заполнения выпадающего списка.Количество детей собирается просто вставить HTML, и я не хочу, чтобы это редактировалось. Когда я хочу опубликовать сообщение, я хочу передать только тонкий объект только с опубликованными свойствами, поэтому у меня есть другой объект
public class PersonUpdater
{
public int Age;
public string FIrst;
public int JobCategoryId;
}
это единственные свойства, которые мне нужно передать обратно, чтобы мой контроллер выглядел так:
public ActionResult Update(PersonUpdater personUpdater)
{
_repository.UpdateModel(personUpdater).
}
поэтому, учитывая вышесказанное, допущение, что строго типизированные вспомогательные методы (ниже) кажутся полезными для этого, но могут вызвать проблемы при повторной отправке на сервер, если вы ссылаетесь на другие свойства.
http://weblogs.asp.net/scottgu/archive/2010/01/10/asp-net-mvc-2-strongly-typed-html-helpers.aspx
есть идеи?