0

次を使用してクエリ文字列を取得していました。

public ActionResult Index(int id)
{
  var queryString = Request["myQueryString"];
}

それから私は見ました:

help-testing-mvc3-controller-that-accesses-querystring

どの州:

HttpRequest を直接使用することは、MVC の設計パターンに反します。アクションのクエリ文字列変数にパラメーターとしてアクセスできます。

これはよくわかりません。私がやったことはデザインパターンに対してですか?それがなぜであり、どのようにそれを行うことができますか?

4

3 に答える 3

1

好ましい(そして読みやすい)方法は次のとおりです。

public ActionResult Index(int id, string myQueryString)
{
    ...
}
于 2012-08-30T03:29:22.500 に答える
1

モデルバインディングの概念を破ります。また、単体テストやテスト用に新しいものを作成しようとすると複雑になりHttpContextます。それが単なるパラメーターである場合は、値を渡すだけで済みます。

于 2012-08-29T23:24:55.903 に答える
0

アクション メソッドは、フォームから送信されたほとんどのデータを取得する必要があります。MVC の強みの 1 つは、MVC 内にあるモデル バインディングです。このページには、これの良い例があるので、チェックしてください。

http://www.codeproject.com/Articles/159749/ASP-NET-MVC-Model-Binding-Part1

リテラル (string、bool など) だけでなく、アクション メソッドで厳密に型指定されたオブジェクトも受け入れることができます。

于 2012-08-29T23:26:54.053 に答える