4

在我的页面中,我有

 @using (Html.BeginForm("list", "menu", FormMethod.Get))
    {
        <div>
           Show categories:
            @Html.DropDownList("groupName", (SelectList)ViewBag.groups)
            <input id="Submit1" type="submit" value="Show" />
        </div>
    }

关于用户选择的选项,我生成一个列表,我的地址中的查询字符串将如下所示:

localhost/menu/list?groupName=controlpanel

我的问题是当我使用 HtmlActionLink 例如:

@Html.ActionLink("Title", "List", new { foo = item.foo})

我得到的结果是:

localhost/menu/List?foo=123

代替 :

 localhost/menu/List?foo=123&groupName=controlpanel

我错过了什么吗?

4

2 回答 2

5

它不是一个内置的解决方案,即使它似乎完全可以解决您正在寻找的内容:

ASP.NET MVC 基于当前 Url 构建 Url

于 2012-10-29T20:54:20.363 回答
1

要使用 ActionLink,您需要包含所有要出现在查询字符串中的参数。我认为最简单的方法是在您的模型上添加一个 GroupName 属性(或在 ViewBag 中像您的其他示例一样)。然后你可以这样做:

@Html.ActionLink("Title", "List", new { foo = item.foo, groupName = Model.GroupName })
于 2012-10-29T21:36:13.387 回答