вызов возврата RedirectToAction ("Activity") вне контроллера - PullRequest
6 голосов
/ 11 августа 2011

Я создаю свободный интерфейс и хотел бы вызвать приведенный ниже код вне моего контроллера ...

return RedirectToAction("Activity");

Как бы я разработал этот метод? У меня есть:

    public FluentCommand RedirectOnSuccess(string url)
    {
        if (IsSuccess)
            ;// make call here...

        return this;
    }

Примечание: IsSuccess установлен здесь:

public FluentCommand Execute()
        {
            try
            {
                _command.Execute();
                IsSuccess = true;
            }
            catch (RulesException ex)
            {
                ex.CopyTo(_ms);
                IsSuccess = false;
            }
            return this;
        }

Я называю свой свободный интерфейс:

var fluent = new FluentCommand(new UpdateCommand(param,controller,modelstate)
.Execute()
.RedirectOnSucess("Actionname");

1 Ответ

4 голосов
/ 11 августа 2011

Вы можете сохранить экземпляр HttpContextBase как поле внутри вашего свободного интерфейса, и когда вам нужно перенаправить:

var rc = new RequestContext(context, new RouteData());
var urlHelper = new UrlHelper(rc);
context.Response.Redirect(urlHelper.Action(actionName), false);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...