É possível exibir uma visão de outro controlador?
Digamos, por exemplo, que eu tenho uma CategoriesController
e uma Category/NotFound.aspx
visão. Enquanto estiver no CategoriesController
, posso voltar facilmente View("NotFound")
.
Agora diga que eu tenho ProductsController
uma ação e uma visualização para adicionar um produto. No entanto, essa ação exige que tenhamos uma categoria à qual adicionar o produto. Por exemplo Products/Add/?catid=10
,.
Se eu não conseguir encontrar a categoria com base catid
, quero mostrar a NotFound
exibição do controlador Categorias em vez de criar uma CategoryNotFound
exibição no controlador Produtos.
Isso é possível ou estou estruturando as coisas da maneira errada? Existe uma boa maneira de fazer isso?
new ViewResult { ViewName = "~/Views/Error/Unauthorised.cshtml" };
e funcionouVocê pode usar:
Foi testado no ASP.NET MVC 3, mas também deve funcionar no ASP.NET MVC 2.
fonte
"~/Views/Category/NotFound.cshtml"
.Sim é possivel. Retorne um
RedirectToAction()
método como este:fonte
Você já tentou
RedirectToAction
?fonte
Sim você pode. Retorne uma ação como esta:
Um exemplo:
Essa abordagem chamará o método GET
Além disso, você pode passar valores para ações como esta:
fonte
Você também pode chamar qualquer controlador de JavaScript / jQuery . Digamos que você tenha um controlador retornando 404 ou algum outro controle / página do usuário. Em seguida, em alguma ação, a partir do código do cliente, você pode chamar algum endereço que acionará seu controlador e retornar o resultado em formato HTML . O código do cliente pode pegar esse resultado retornado e colocá-lo onde quiser na sua página ...
fonte
Com este código, você pode obter qualquer controlador:
fonte