将模型添加到@ url.action

时间:2015-05-28 05:37:23

标签: asp.net-mvc razor asp.net-mvc-5

我有一个模特:

public class Menu
{
    public Menu MenuEntity {get;set;}
    public List<Menu> MenuList {get;set;}
    public int MenuId {get;set;}
    public int? ParentId{get;set;}
    public string Title{get;set;}
    public string Description{get;set;}
    public string Levelstate{get;set;}
    public string Controller { get; set; }
    public string Action { get; set; }
}

在视图中我使用@ Url.Action,如下所示。

<a href ='@Url.Action("GetCustomer", "Customer")'>@citem.Title</a>

我想用模型值更改@ Url.Action中指定的Action和Controller,如下所示:

<a href ='@Url.Action(m => m.Action, m => m.Controller)'>@citem.Title</a>

1 个答案:

答案 0 :(得分:3)

Url.Action()方法只接受字符串作为参数,而不接受表达式。

您可以使用

@foreach(var citem in Model) {
  <a href ='@Url.Action(citem.Action, citem.Controller)'>@citem.Title</a>
}

或使用@Html.ActionLink()

@Html.ActionLink(citem.Title, citem.Action, citem.Controller)