2009-12-09 22 views
0

是否可以将Lambda Expression(action?)分配给我的View Model的属性,然后在Partial中使用该表达式?模型的属性类型应该是什么?伪代码:如何将表达式分配给模型属性然后将其用于部分对于ActionLInk?

视图模型

public class MyModel 
{ 
    public ????? MyAction {get;set;} 
} 

控制器

public ActionResult Index() 
{ 
    var model = new MyModel(); 
    model.MyAction = ?????<MyController>(x => x.DoThis()); 

    return View(model); 
} 

public ActionResult DoThis() 
{ 
    return View(); 
} 

Partial.ascx,我怎么会指定动作给ActionLink的?

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<MyModel>" %> 

<%=Html.ActionLink<Controller>(x => x.DoThis())%> 

我正在使用Futures程序集中强类型的ActionLink。

回答

0

试试这个:

public class MyModel 
{ 
    Expression<Action<MyController>> Action { get; set; } 
} 

... 

model.Action = x => x.DoThis(); 

... 

<%= Html.ActionLink(Model.Action) %> 
+0

这是有道理的,但不会在一般秉承着强类型ActionLink的?他们不包括2.0版本吗? – mxmissile 2009-12-09 15:50:41

+0

好的。我想我误解了你想做的事情。我以为你试图在控制器中运行一些代码来获取用于生成链接的函数。我会更新。 – tvanfosson 2009-12-09 15:56:49

+0

如果我不知道控制器类型,该怎么办? MyController可以通用吗? – mxmissile 2009-12-09 16:21:25

相关问题