Ho un asp.net MVC 1.0 che serve alcuni contenuti da una gerarchia di livelli 2 /categoria/articoloCome gestire 'View not found' InvalidOperationException in asp.net mvc?
Quando le cose vanno bene al mappe di articolo per una vista e lo sguardo si rese. Tuttavia, quando l'url soddisfa la condizione di routing ma la vista non esiste, viene sollevata un'eccezione che non è possibile intercettare nell'azione Controller.
Routing:
routes.MapRoute(
"Article",
"{category}/{article}.aspx",
new { controller = "MyController", action = "Article" }
);
MyController Azione:
public ActionResult Article(string category, string article)
{
string path = string.Format("~/Views/{0}/{1}.aspx", category, article);
ViewResult vr = View(path);
return vr;
}
Tuttavia, quando la vista non viene trovato, un System.InvalidOperationException
viene generato che non posso prendere in azione Controller.
Dettagli eccezione: System.InvalidOperationException: La vista '~/Vista/my-category/my-articolo-con-lungo name.aspx' o il suo padrone non è stato trovato. Le seguenti posizioni sono stati cercati: ~/Vista/my-category/my-articolo-con-lungo name.aspx
posso intercettare l'errore nel metodo Application_Error()
in global.asax.cs
ma:
- non so come reindirizzare alla vista errori da lì
- chiedo se c'è un posto migliore più vicino a dove è sollevata l'eccezione .
Ho provato e mi piace la soluzione. L'unico problema è che se si ottiene un InvalidOperationException a causa di un diverso motivo, si verificherà un 404. Ho avuto un'eccezione simile quando provavo a serializzare qualcosa. – Bealer