asp.net mvc:将 RedirectToAction(string, object) 转换为 RedirectToAction(x => x.Detail(id))

发布于 2024-08-18 17:01:53 字数 611 浏览 3 评论 0原文

任何人都知道如何创建一个方法(我将把它放在扩展类中),该方法将仅使用表达式(无魔术字符串)执行与 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
     );
 }

anybody knows how to make a method (I will put it in a extensions class) that will do the same as the mvc's RedirectToAction only using expressions (no magic strings).

So that instead of writing something like this:

 RedirectToAction("Detail", 
    new RouteValueDictionary { {"messageId", messageId}});

I would do like this:

this.RedirectToAction(x => x.Detail(messageId));

I tried and did something like this but I don't know how to add the parameters:

 public static RedirectToRouteResult RedirectToAction<T>(this T controller,
     Expression<Action<T>> expression)
 {
     return RedirectToAction(
        (expression.Body as MethodCallExpression).Method.Name
     );
 }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

匿名的好友 2024-08-25 17:01:53

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

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

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

Also, I believe they moved type-safe HtmlHelper extensions into the MVC Futures assembly back when 1.0 came out, however I can't seem to find it now.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文