ASP.net MVC RouteLinkとオプションrouteValues
-
23-08-2019 - |
質問
私は条件付きでオプションであるrouteValueを設定する方法を理解しようとしています。
私が持っている
<%= Html.RouteLink("<<<","Products",new { page=(Model.Products.PageIndex) }) %>
訪問者は「カテゴリ」をクリックすると私はそのカテゴリの製品を示していないが、そこにある場合ない「カテゴリ」私はすべての製品を表示します。
これらの2つのURLが有効になります:
/製品/ページ
/製品/ページ?カテゴリ=車
RouteLinkので、私は何とかページ間のカテゴリを持続するために、ページャ内のリンクにcategoryパラメータを渡すと考えていた私のページャです。しかし、私は何のカテゴリはカテゴリが選択されたときに対選択されていないケースを扱うかどうかはわかりません。
私はこれを行うことができます知っています:
<%= Html.RouteLink("<<<","Products",new { page=(Model.Products.PageIndex), category=cars }) %>
しかし、それは文の場合、いくつかの厄介を作成せずに、両方のケースを処理することは可能でしょうか?
解決
これは単なるアイデアですが、あなただけの空のカテゴリのパラメータを渡すことはできません?
<%= Html.RouteLink("<<<","Products",new { page=(Model.Products.PageIndex), category=(ViewData["CategoryName"]) }) %>
それが存在するかどうそして、あなたはページを取得し、あなたのproductscontrollerで、ちょうどチェック?
public ActionResult Index(int page, string category)
{
ViewData["CategoryName"] = category;
if(!string.IsNullOrEmpty(category)){
//paging with category
}else{
//paging without category
}
return View("Create");
}
それとも、「厄介なif文」によって何を意味するということですか。
他のヒント
の車の変数がNULLまたは空ストリングである場合、
、Html.RouteLinkメソッドが自動的にURLにのカテゴリのパラメータを追加しません。あなたは余分なチェックを行う必要はありません。
所属していません StackOverflow