2009-06-07 12 views

答えて

0

モデルバインダー

MVCにおけるモデルバインダー投稿フォームは、.NET Framework型に 値と パラメータとしてアクションメソッドに 型を渡すマップする 簡単な方法を提供します。バインダーは、 メソッドに渡される タイプの逆シリアル化を制御します。モデルバインダは、 コンバータのようなものです。 HTTPリクエストを のオブジェクトに変換してアクションメソッドに渡すことができるためです。ただし、 には、現在のコントローラーコンテキストの に関する情報もあります。

here

1

のではなく、あなたの行動に送られたプリミティブを取得:

public ActionResult Search(string tagName, int numberOfResults) 

カスタムオブジェクトを取得:

public ActionResult Search(TagSearch tagSearch) 

これはあなたの検索アクション「シンナー」(良いこと)を行う、はるかにテスト可能メンテナンスが軽減されます。

+0

を次の2つの例は、入れ替えを取得しましたか? – DSO

0

はここで別の利点です:

あなただけのIDを指定したデータベースからオブジェクトを取得modelbindersを作成することができます。

これはあなたのコントローラのスキニーを保ち、あなたはあなたのためdatafetchingを行うだろうこの

// GET /Orders/Edit/2 
public ActionResult Edit(Order order){ 
    return View(order); 
} 

とカスタムModelBinderのようなアクションを取得できるようになります。そのModelBinderなし

が、それは次のようになります。

// GET /Orders/Edit/2 
public ActionResult Edit(int id){ 
    var order = _orderRepository.Get(id); 
    // check that order is not null and throw the appropriate exception etc 
    return View(order); 
} 
関連する問題