Подтвердить что ты не робот

Перенаправить из представления в другое представление

Привет, Я пытаюсь перенаправить с представления на другое представление, но я получаю красную squigly в visual studio. Как я могу перенаправить изнутри представления в другое представление. Это то, что я пробовал, но он не работает:
@Response.Redirect("~/Account/LogIn?returnUrl=Products");

Как я могу перенаправить из своего текущего вида в другое представление?

4b9b3361

Ответ 1

Это потому, что ваш оператор не выводит результат.

Помимо всех предупреждений Дарина и ленивых (они правы); вопрос все еще предлагает чему-то, чему нужно научиться.

Если вы хотите выполнять методы, которые напрямую не производят вывод, вы делаете:

@{ Response.Redirect("~/Account/LogIn?returnUrl=Products");}

Это также относится к частичным частям:

@{ Html.RenderPartial("_MyPartial"); }

Ответ 2

Это не то, как предполагается использовать ASP.NET MVC. Вы не перенаправляете из представлений. Вы перенаправляетесь из соответствующего действия контроллера:

public ActionResult SomeAction()
{
    ...
    return RedirectToAction("SomeAction", "SomeController");
}

Теперь, когда я вижу, что в вашем примере вы пытаетесь перенаправить действие LogOn, вам действительно не нужно делать это перенаправление вручную, а просто украсить действие контроллера, требующее аутентификации с помощью атрибута [Authorize]

[Authorize]
public ActionResult SomeProtectedAction()
{
    ...
}

Теперь, когда какой-то анонимный пользователь пытается получить доступ к этому действию контроллера, модуль проверки подлинности форм автоматически перехватит запрос задолго до того, как он ударит действие и перенаправит пользователя на действие LogOn, указанное вами в вашем web.config(loginUrl).

Ответ 3

Цель просмотра - отображать модель. Вы должны использовать контроллер для перенаправления запроса, прежде чем создавать модель и передавать ее для просмотра. Используйте Controller.RedirectToAction метод для этого.