2015-07-03 76 views
0

處理ASP.Net Web窗體混合的項目& MVC。自定義錯誤消息MVC

場景:在Web窗體應用程序中,頁面的一部分使用MVC Partial View進行渲染,如下圖所示。

enter image description here

在Web窗體ASPX頁面,定義了一個事業部與ID = MVCPartialView1和使用jQuery阿賈克斯成功可以綁定返回管窺到Web窗體。

$.ajax(
{ 
success: function (msg) { $("#MVCPartialView1").html(msg); } 
}); 

對於處理錯誤使用以下代碼的場景。

[AttributeUsage(AttributeTargets.Class)] 
    public sealed class ErrorAttribute : HandleErrorAttribute 
    { 
     public override void OnException(ExceptionContext filterContext) 
     { 
      // Execute the normal exception handling routine 
      base.OnException(filterContext); 

      if (filterContext.HttpContext.Request.IsAjaxRequest()) 
      { 
       filterContext.Result = new ViewResult 
       { 
        ViewName = "CustomError.aspx" 
       }; 
      } 
     } 
    } 

基本控制器:

[ErrorAttribute] 
public class BaseController : Controller 

實際的問題是當任何異常中的MVC局部視圖(控制器)發生,CustomError只顯示內部DIV MVCPartialView1但它將使感展現CustomError爲全含的WebForm.aspx

enter image description here

但是電動xpected CustomError消息是:

enter image description here

+0

你爲什麼混合MVC和Web窗體?出於好奇。 – Derek

+0

這是一個已經存在於Web窗體中的現有項目。慢慢地,我們正在向MVC遷移 – Vinod

回答

0

你可以把它只有在你的情況下JS工作。

有些事情是這樣的:

$.ajax(
{ 
    success: function (msg) 
    { 
     if(msg.indexOf("Error") > -1) //You should check if Error page returned 
     { 
     window.location.href = "CustomError.aspx"; //Here if redirect to error of full page 
     } 
     else 
     { 
     $("#MVCPartialView1").html(msg); 
     } 
    } 
}); 
+0

是的,我猜這是做它的唯一方法。 – Vinod