Перенаправить страницу mvc asp.net из класса бизнес-логики - PullRequest
7 голосов
/ 14 января 2010

Я вызываю статический метод на своем уровне бизнес-логики, который, для целей, о которых я здесь не буду упоминать, должен выполнять перенаправление сам, а скорее возвращать информацию обратно в контроллер для выполнения перенаправления.

Я полагаю, мне нужно использовать объект HttpContext, но я пытаюсь создать маршрут. Я не могу просто сделать context.Response.Redirect ("someController / someMethod), потому что мне нужно включить параметры для контроллера действий, в который я отправляю пользователя.

Предполагая, что это правильно:

HttpContext context = HttpContext.Current;

Может ли кто-нибудь предоставить некоторую справку по синтаксису о том, как создать маршрут, используя такой объект, как:

new { Controller = "MyController", action = "Index", OtherParm="other value" }

1011 * ТИА *

1 Ответ

13 голосов
/ 14 января 2010

Очень некрасиво, анти-MVC, не делаю на бизнес-уровне и т. Д ... но так как вы спрашиваете:

var context = new RequestContext(
    new HttpContextWrapper(System.Web.HttpContext.Current), 
    new RouteData());
var urlHelper = new UrlHelper(context);
var url = urlHelper.Action("Index", new { OtherParm = "other value" });
System.Web.HttpContext.Current.Response.Redirect(url);
...