将多个参数传递给MVC控制器

时间:2014-06-22 17:29:02

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

我搜索过并发现了几个类似于我的问题,但答案太过具体,无法帮助OP的情况。

在我的主视图中,我有一个项目表和每个项目的操作链接:

Item Name   Actions
Item #1     Foo | Bar
Item #2     Foo | Bar

主视图使用以下代码显示此表:

@foreach (var item in Model)
{
  <tr>
    <td>@Html.DisplayFor(modelItem => item.Title)</td>
    <td>
      @Html.ActionLink("Foo", "Index", "Test", item, null) |
      @Html.ActionLink("Bar", "Index", "Test", item , null)
    </td>
  </tr>
}

如您所见,主视图表中的每个项目都链接到测试控制器/视图。

测试控制器的索引操作定义为:

    public ActionResult Index(Item item)
    {
        return View(item);
    }

然后定义测试视图以接受Item模型:

@model Models.Item

这一切都有效,Test视图显示Item对象的数据。

但是,我现在需要Foo和Bar以两种不同的方式或模式显示Test控制器/视图。

类似的东西:

?mode=foo&item=Item
?mode=bar&item=Item

如何将Item对象和模式传递给Test控制器,以便Test视图根据模式正常运行?

1 个答案:

答案 0 :(得分:1)

将模式添加到路线值。您必须展开Item的属性

@Html.ActionLink("Foor", "Index", "Test", new { mode = "foo", propA = item.PropA }, null)