将查询字符串添加到ASP.NET MVC中的HtmlHelper

时间:2011-05-10 14:53:32

标签: c# asp.net-mvc

我有一个关于生成链接的两个HtmlHelper的视图,类似这样的

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

现在我希望为链接B添加一个查询字符串,以便它指向以下网址http://localhost:55556/HomeController/?Sort=LinkB

我希望两个链接都指向同一个控制器,这样我就能检测出queryString是否存在,然后将相应的链接指向另一个视图,有些像......

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

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

感谢您的帮助。

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:1)

您只需在字典中提供查询字符串参数即可。关于SO的以下问题可能会让您感兴趣:QueryString parameters

在你的情况下,它只是

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