asp.net mvc: сделать RedirectToAction (строку, объект) в RedirectToAction <Controller>(x => x.Detail (id)) - PullRequest
3 голосов
/ 20 января 2010

Кто-нибудь знает, как создать метод (я помещу его в класс расширений), который будет делать то же самое, что и RedirectToAction mvc, только используя выражения (без магических строк).

Так что вместо того, чтобы писать что-то вроде этого:

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

Ответы [ 2 ]

4 голосов
/ 20 января 2010
1 голос
/ 20 января 2010

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

Кроме того, я полагаю, что они вернули безопасные для типов расширения HtmlHelper в сборку MVC Futures, когда вышла версия 1.0, однако сейчас я не могу ее найти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...