带有List <string>参数的ASP.NET MVC Html.ActionLink

时间:2016-02-01 18:23:53

标签: c# asp.net-mvc asp.net-mvc-4

如何将参数列表传递给ActionLink所有具有相同名称的参数?我使用默认路线。

我正在寻找类似下面的内容,但我知道匿名对象不能具有相同名称的密钥。此外,RoutingValueDictionary不能包含具有相同名称的密钥。

 @Html.ActionLink("Link Name", "Index", "Home", new {key="val1", key="val2", ... }, null)

哪个链接到

localhost:8080/Home/Index?key=val1&key=val2& ...

如何创建此链接?

2 个答案:

答案 0 :(得分:1)

您需要手动创建<a>代码

<a href="@Url.Action("Index", "Home")?key=val1&key=val2&key=val3">Link Name</a>

但是,根据您的评论,您似乎想要传递复选框的值,在这种情况下,您可以使用包含FormMethod.Get的表单

@using (Html.BeginForm("Index", "Home", FormMethod.Get)
{
  <input type="checkbox" name="key" value="val1" />
  <input type="checkbox" name="key" value="val2" />
  <input type="checkbox" name="key" value="val3" />
  <input type="submit" value="Save" />
}

将生成

.../Home/Index?key=val1&key=val3

假设您选中第1个和第3个复选框

答案 1 :(得分:0)

您无法传递密钥,密钥,密钥,密钥和密钥。因为key = key!而是传递一个列表。

创建模型

public class MyModel
{
    public List<string> Keys { get; set;}
}

在你的控制器中接受它

public ActionResult LinkName(MyModel model)
{
    // stuff
}

从您的观点转移

@using (Html.Beginform("LinkName"))
{
    <input name="Keys[0]">
    <input name="Keys[1]">
    <input type="submit" value="submit">
}