Asp.net mvc 将模型添加到@url.action
我有一个模型:Asp.net mvc 将模型添加到@url.action,asp.net-mvc,razor,asp.net-mvc-5,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;
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; }
}
公共类菜单
{
公共菜单有效性{get;set;}
公共列表菜单列表{get;set;}
public int MenuId{get;set;}
public int?ParentId{get;set;}
公共字符串标题{get;set;}
公共字符串说明{get;set;}
公共字符串Levelstate{get;set;}
公共字符串控制器{get;set;}
公共字符串操作{get;set;}
}
鉴于此,我正在使用@Url.Action,如下所示
<a href ='@Url.Action("GetCustomer", "Customer")'>@citem.Title</a>
我想用模型值更改@Url.Action中指定的操作和控制器,如下所示:
<a href ='@Url.Action(m => m.Action, m => m.Controller)'>@citem.Title</a>
方法Url.Action()
只接受字符串作为参数,而不是表达式
你可以用
@foreach(var citem in Model) {
<a href ='@Url.Action(citem.Action, citem.Controller)'>@citem.Title</a>
}
您不能在
@Url.Action()
方法中使用表达式,但可以使用@Url.Action(Model.Action,Model.Controller)
-或者它可能是citem.Action
,如果它在循环中?@StephenMuecke是否有任何方法使用Html.ActionLink?@StephenMuecke甚至@Url.Action(Model.Action,Model.Controller)都不起作用。在模型之后。只有方法。@Html.ActionLink(citem.Title,citem.Action,citem.Controller)
(我正在使用类似于foreach(var citm in Model){
)的方法。Model.Action,Model.Controller
如果您的模型是IEnumerable
,我猜它是这样的话,它就不起作用了(需要是citem.Action,citem.Controller
)
@Html.ActionLink(citem.Title, citem.Action, citem.Controller)