2

与えられた URL:

http://www.stackoverflow.com/question ? 質問=123&回答=5

およびそれに対応する ActionMethod と Model:

public ActionResult Question(RequestObject request)
{
   return View("Question", request);
}

public class RequestObject
{
   public string AskId
   {
      get;
      set;
   }

   public string NumberOfAnswers
   {
      get;
      set;
   }
}

QueryString と RequestObject のパラメーターが異なることに注意してください。デフォルトのバインディング動作でそれを達成できますか? カスタム バインダーを作成する必要がありますか?

ありがとう!

4

3 に答える 3

1

カスタム モデル バインダーが必要なようです。Scott Hanselman は、カスタム バインダーの実装の良い例をここに示しています。

于 2010-04-08T06:22:22.993 に答える
0

明示的なオブジェクトの初期化を使用できます。

public ActionResult Question(string ask, string answers)
{
    return View("Question", new RequestObject
    {
        AskId = ask,
        NumberOfAnswers = answers
    });
}
于 2009-09-29T04:18:55.223 に答える
0

DefaultModelBinder をオーバーライドします。特に、そのBindProperty方法。

于 2010-01-31T16:44:32.990 に答える