ASP.NET MVC: как получить реальный объект при использовании действия «Изменить»? - PullRequest
1 голос
/ 21 марта 2009

Я только начинаю играть с asp.net mvc, и у меня есть очень простой вопрос:

Если у меня есть представление, которое отображает информацию о System.Web.Mvc.ViewPage<Foo>, как я могу получить реальный объект при передаче значений формы моему действию редактирования на моем FooController? По умолчанию я получил эту реализацию действия Edit:

public ActionResult Edit(int id, FormCollection collection)

Есть ли какой-нибудь способ, которым я мог бы иметь другую перегрузку как это?

public ActionResult Edit(int id, Foo myObject)

Спасибо.

РЕДАКТИРОВАНИЕ:

Извините, ребята, просто немного больше информации, чтобы вы поняли, о чем я думал ... так как у меня есть своя собственная структура для воспроизведения изменений, которые я внес в свои сущности, мне не нужно было повторно запрашивать моя сущность и использовать метод UpdateModel (). То, что я в конечном итоге делал, было просто иметь метод, подобный этому:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(Foo myObject)
{
}

Я не знал, но это прекрасно работает. Благодаря ответу, который привел меня к этому сообщению: http://www.haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx

Ответы [ 4 ]

0 голосов
/ 21 марта 2009

Если вам нужно посмотреть, как это сделать правильно, перейдите на nerddinner.com и загрузите исходный код. Этот сайт разработан Скоттом Гу, Филом Хааком и другими парнями, чтобы показать, как делать MVC ...

0 голосов
/ 21 марта 2009

Самый простой способ реализовать ваш метод редактирования - использовать метод UpdateModel, который уже включен в базовый класс Controller, например так:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(int id, FormCollection collection)
{

    LinqEntity entity = MyRepository.GetEntity(id);
    UpdateModel(entity);

    //validate and save your entity here

}

Edit: я также только начал изучать ASP.NET MVC и нашел ScottGu's MVC Walkthrough очень полезным. В нем показано, как реализовать простой веб-сайт MVC (вы можете увидеть его на сайте nerddinner.com), и освещены многие общепринятые темы, подобные приведенной выше.

0 голосов
/ 21 марта 2009

Похожие вопросы:
Как передать сложный тип с помощью json в контроллер ASP.NET MVC

Это, вероятно, будет отвечать вашим потребностям.

0 голосов
/ 21 марта 2009

Вы можете написать какой-нибудь сумасшедший конвертер типов, однако есть вспомогательные методы для отображения значений из FormCollection в ваш объект Foo.

РЕДАКТИРОВАТЬ: я думаю, что он реализован как метод расширения и называется UpdateFrom (..)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...