2011-05-10 66 views
3

我有產生鏈接兩個HtmlHelpers視圖,像這樣查詢字符串添加到的HtmlHelper在ASP.NET MVC

<li><%:Html.ActionLink("Link A", "Index", "HomeController")%></li> 
<li><%:Html.ActionLink("Link B", "Index", "HomeController"})%></li> 

現在我想查詢字符串添加到鏈路B所以當它點下面的網址http://localhost:55556/HomeController/?Sort=LinkB

我想這兩個鏈接指向同一個控制器,所以我可以再檢測,如果查詢字符串存在,則指向相應的鏈接到不同的看法,有些東西一樣......

[AcceptVerbs(HttpVerbs.Get)] 
     public ActionResult Index() 
     { 
      var linkChoice = Request.QueryString["Sort"]; 

      if (linkChoice == "LinkB") 
      { 
       return View("ViewB"); 
      } 
      else 
      { 
       return View("ViewA"); 
      } 
     } 

感謝您的幫助。

回答

2

有沒有什麼不能使用的原因:

<li><%:Html.ActionLink("Link A", "Index", "HomeController", new { Sort = "LinkA" }, null)%></li> 
<li><%:Html.ActionLink("Link B", "Index", "HomeController", new { Sort = "LinkB" }, null)%></li> 
+0

你好,這似乎工作,使用上述給了我提供的答案Tejs從HtmlHelper產生以下網址:http:// localhost:55556 /?長= 18 爲什麼我不知道? – 2011-05-10 15:04:49

+0

另一個示例是使用錯誤的重載,因此第三個參數(它是控制器名稱)正在用作路由值的對象。該對象是一個字符串。一個字符串有一個Length屬性。您使用的控制器名稱的長度必須爲18個字符。 – 2011-05-10 15:11:49

1

您只需在字典中提供查詢字符串參數。關於SO的以下問題可能會使你感興趣:QueryString parameters

在你的情況吧,簡直是

<%= Html.ActionLink("Name", "Index", "Controller", new { Sort = "LinkB" }) %> 
+0

良好的聯繫 - 謝謝! – 2011-05-10 15:08:47