【问题标题】:asp.net mvc: make RedirectToAction(string, object) into RedirectToAction<Controller>(x => x.Detail(id))asp.net mvc: 将 RedirectToAction(string, object) 变成 RedirectToAction<Controller>(x => x.Detail(id))
【发布时间】:2011-01-07 08:21:09
【问题描述】:

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

所以不要写这样的东西:

 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
     );
 }

【问题讨论】:

    标签: c# asp.net-mvc lambda


    【解决方案1】:

    【讨论】:

    【解决方案2】:

    http://www.clariusconsulting.net/blogs/kzu/archive/2008/04/07/59274.aspx

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

    【讨论】:

      猜你喜欢
      • 2017-09-29
      • 1970-01-01
      • 2021-06-17
      • 2020-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多