2009-03-21 2 views
1

私はただのasp.net MVCでプレイし始めていると私は非常に基本的な質問を持っている:ASP.NET MVC:編集アクションを使用しているときに実際のオブジェクトを取得するにはどうすればよいですか?

私はSystem.Web.Mvc.ViewPage<Foo>についての情報を表示するビューを持っている場合は、フォームを渡すときに、どのように私は、実際のオブジェクトを取得することができます私のFooControllerの私の編集アクションに値がありますか?デフォルト私は編集アクションのこの実装を得たことで :

public ActionResult Edit(int id, FormCollection collection) 

は、私はこのような別のオーバーロードを持つことができる方法はありますか?

public ActionResult Edit(int id, Foo myObject) 

ありがとうございます。

EDITED:

申し訳ありませんが、みんな、少しあなたは私は私はdidnの私のエンティティに加えられた変更を再生するために私自身のフレームワークを持っているように、私は....やって考えていたかを理解して、背景のよりエンティティを再クエリしてUpdateModel()メソッドを使用する必要はありません。私がやったことは、次のような方法をとっただけでした。

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

私は分かりませんでしたが、うまくいきました。 http://www.haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx

答えて

0

FormCollectionの値をFooオブジェクトにマップするヘルパーメソッドがありますが、クレイジータイプのコンバーターを作成する可能性があります。

編集:私が思うに、その拡張メソッドとして実装して、編集する方法を実装するための最も簡単な方法UpdateFrom(..)

0

と呼ばれ、すでにコントローラのベースクラスなどに含まれているのUpdateModelメソッドを使用していますさこの:

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

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

    //validate and save your entity here 

} 

編集:私もちょうどASP.NET MVCを学び始めとScottGu's MVC Walkthroughは非常に有用であることが分かってきました。シンプルなMVC Webサイト(nerddinner.comで見ることができます)を実装する方法を示しています。また、上記のような多くのトピックを網羅しています。

0

どうすればいいですか?nerddinner.comに行き、ソースコードをダウンロードしてください。このサイトは、Scott Gu、Phil Haack、他の人がMVCを行う方法を示すために開発したものです。

関連する問題