これは私が議論したいことです。ASP.NET MVC単一のビューでさまざまなアクションロジックを処理する方法は?
.../browse
.../brand/audi/a4
.../category/tail-lights-17
.../search?t=fog+lamp
私の現在の解決策は、これらのルートに対して異なるアクションとビューを作成することです。
@if(Model.ShowCarSelection)
{
@Html.Partial("_CarSelection")
}
私はあなたがこのようなシナリオを処理しますか疑問のすべてのビューは、部分的なビューで製品をリストしているが、(私は別の部分図で再びこれを扱うことができると推定)、フィルタリングや車の選択のようないくつかの違いがあります。たとえば、次のようなものはどうですか:
[HttpGet, Route("browse"), Route("/{make}/{model}"), Route("categorySlug")]
public ActionResult List(string make, string model, string categorySlug, int page = 1, string sort, string filter)
{
var listVM = new ListVM();
if(!string.IsNullOrEmpty(categorySlug))
listVM.Products = productService.GetByCategorySlug(categorySlug);
else if (!string.IsNullOrEmpty(make))
listVM.Products = productService.GetByMakeAndModel(make, model);
// other things like filtering, sorting, preparing car selection partial view model etc.
return View();
}
しかし、これは私が私に悲しい(悪い)気分にさせる本当に長い行動になります。
誰でもこのようなものに対処すれば、私に指示を与えることができますか?
これはフィルタリングや検索フォームでうまく見えますが、 'SearchCriteria'モデルでPOSTリクエストを行うことはできますが、カテゴリメニューリンクや特定のmake/modelリンクをどのように生成して処理しますか?ビューモデルにURLセグメントをバインドできますか? –