2011-05-10 68 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

相关问题