MVC-3 ASP.NET Shared Views-Redirect-Razor - PullRequest
3 голосов
/ 31 мая 2011

У меня есть общий вид с именем NotAuthorised в папке 'Views / Shared'.Я хочу перенаправить пользователей в это представление, когда они не авторизованы для просмотра страницы.

Первоначально это представление находилось в папке с именем Account.Но я переместил его в общую папку, так как я больше не использую учетную запись.Я удалил папку учетной записи.

Я использовал следующий код для перенаправления:

public ActionResult NotAuthorised()
{  
   return RedirectToAction("NotAuthorised", "Account");
}

Теперь, когда я удалил папку учетной записи, я пытаюсь использовать

public ActionResult NotAuthorised()
{  
   return RedirectToAction("NotAuthorised", "Shared");
}

Я совершенно не прав, указав имя папки в последней строке.

Может кто-нибудь сказать мне, что я делаю не так?

Спасибо

1 Ответ

9 голосов
/ 31 мая 2011

Вы не можете перенаправить на View, только на Action из Controller.Вы должны указать действие контроллера для вашего перенаправления, и там вы можете отобразить ваше общее представление.

public class AuthorizeController : Controller
{
    public ActionResult NotAuthorised()
    {  
       return View("NotAuthorised");
    }
}

, а затем перенаправить на это новое действие из любого другого метода действия:

return RedirectToAction("NotAuthorised", "Authorize");

Но вам может не понадобиться этот дополнительный Controller.Вы можете просто сделать общий доступ View

public ActionResult NotAuthorised()
{  
   return View("NotAuthorised");
}
...