C# asp.net mvc:将RedirectToAction(字符串、对象)转换为RedirectToAction<;控制器>;(x=>;x.详细信息(id))

C# asp.net mvc:将RedirectToAction(字符串、对象)转换为RedirectToAction<;控制器>;(x=>;x.详细信息(id)),c#,asp.net-mvc,lambda,C#,Asp.net Mvc,Lambda,任何人都知道如何制作一个方法(我将把它放在一个扩展类中),该方法将与mvc的RedirectToAction一样,只使用表达式(没有神奇的字符串) 因此,与其写这样的东西: RedirectToAction("Detail", new RouteValueDictionary { {"messageId", messageId}}); this.RedirectToAction(x => x.Detail(messageId)); 我想这样做: RedirectToAct

任何人都知道如何制作一个方法(我将把它放在一个扩展类中),该方法将与mvc的RedirectToAction一样,只使用表达式(没有神奇的字符串)

因此,与其写这样的东西:

 RedirectToAction("Detail", 
    new RouteValueDictionary { {"messageId", messageId}});
this.RedirectToAction(x => x.Detail(messageId));
我想这样做:

 RedirectToAction("Detail", 
    new RouteValueDictionary { {"messageId", messageId}});
this.RedirectToAction(x => x.Detail(messageId));
我尝试并做了类似的事情,但我不知道如何添加参数:

 public static RedirectToRouteResult RedirectToAction<T>(this T controller,
     Expression<Action<T>> expression)
 {
     return RedirectToAction(
        (expression.Body as MethodCallExpression).Method.Name
     );
 }
公共静态重定向器路由结果重定向到操作(此T控制器,
表达式(表达式)
{
返回重定向操作(
(expression.Body作为MethodCallExpression)。Method.Name
);
}


另外,我相信他们在1.0发布时将类型安全的HtmlHelper扩展移到了MVC Futures组件中,但是我现在似乎找不到它。

MvcContrib有它:

aaah,contrib不是Futures+1这个contrib是在mvc2上的,例如,我仍然在使用mvc 1MVC1版本。