部分查看全视图
问题描述:
我需要两种模式在我看来。所以,正如我所建议的那样,我创建了两个部分视图:Entete和ChampsFormulaireInvalidite,都与他们的模型。部分查看全视图
我的索引视图使这两种观点:
<head>
<title>Formulaire d'invalidité</title>
</head>
@{Html.RenderAction("Entete");}
@{Html.RenderAction("ChampsFormulaireInvalidite");}
在Entete控制器,我有时也捕捉异常。当它发生时,我希望整个页面被错误页面替换。我尝试这样做:
public PartialViewResult Entete()
{
try{
<some actions>
return PartialView ("Entete", model)
}
catch(Exception){
return PartialView ("Error")
}
}
当然,因为我返回PartialView,只有我的网页上半年显示错误观点,而另一半则显示一个表单(ChampsFormulaireInvalidite视图)。当发生异常时,我希望重定向到完整的错误页面。
有什么建议吗?
我试图把一个尝试catch在我的索引方法,但没有成功:
public ActionResult Index()
{
try{
return View("Index");
}
catch(Exception){return View("Error")}
}
答
由于这个视频:https://www.youtube.com/watch?v=nNEjXCSnw6w
至于建议,我打开我的web.config中的customErrors:
<system.web>
...
<customErrors mode="On" />
</system.web>
而加入下一个视图视图Error.cshtml /共享:
@model System.Web.Mvc.HandleErrorInfo
@{
ViewBag.Title = "Erreur";
}
<h1 class="text-danger">Error</h1>
尽可能地,当您想要以接触基础结构(在本例中为视图)的方式处理错误时,请使用“全局”错误处理程序,例如Global.asax中的HandleError属性或Application_Error。 CS。 – 2016-09-28 20:34:26
您的第一个示例是为返回部分视图而编写的,因此您将返回PartialView,从而使错误页面显示为部分视图。除此之外,你从'RenderAction'调用动作,所以无论返回什么,它都会出现在页面中。如果你把它作为一个未处理的异常处理,会发生什么? – Luke