0

HTTP POSTパラメーターからのモデル バインディングは、パターン Request-response でうまく機能するため、コントローラーで必要な ViewModel を受け取り、そのオブジェクトでサービス レイヤーを呼び出します。したがって、すべてが DTO ViewModel にカプセル化されます。他のパラメーターを追加したい場合は、メソッド宣言ではなくオブジェクトを変更します。

可能であれば、 (QueryString からの) HTTP GET要求で自動的に同じことを行う必要があるので、たとえば:

/Index/CountryName/PageNumber/1コントローラへのバインドIndex(string CountryName, int PageNumber)

このコントローラーにバインドして、次のようにします: Index(CountryQueryStringModel countryQueryStringModel)

class CountryQueryStringModel 
{
   public string CountryName, 
   public int PageNumber 
}

このアプローチでは、たとえばフィルター基準を追加したい場合は、それをオブジェクトにカプセル化しますCountryQueryStringModel

手伝ってくれてありがとう。

4

1 に答える 1

0

そうです、ルーティングのデフォルト モデル バインダーであるマークです。ここで私が見つけた解決策

context.MapRoute(
                null,
                "hotel/{countryName}/Page/{pageNumber}",
                new { controller = "ResultsCity", action = "Index"},
                new[] { "California_Front.Areas.Hotel_FR.Controllers" }

context.MapRoute(
                null,
                "hotel/{countryName}/",
                new { controller = "ResultsCity", action = "Index", PageNumber = 1 },
                new[] { "California_Front.Areas.Hotel_FR.Controllers" }

コントローラーはこんな感じ

public ActionResult Index(CountryQueryStringModel CountryQueryStringModel)
{}

手伝ってくれてありがとう

于 2012-06-27T13:02:10.700 に答える