2014-01-28 46 views
0

我在寫信知道,每當「api_login爲null」時,如何創建彈出式對話框。我也想知道,我怎樣才能把url鏈接放在彈出框中。如何添加彈出對話框?

public api_login Getapi_login(string id) 
    { 
     api_login api_login = db.api_login.Find(id); 
     if (api_login == null) 
     { 
      throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotFound)); 
      //Response.Write("<script>alert('Your alert box')</script>"); 
     } 

     return api_login; 
    } 

非常感謝

回答

0

我們用所謂的 'CustomExceptionHandler' 控制器上的方法的屬性(例如)。在其中我們將我們想要的描述傳遞給Response.StatusDescription屬性。一旦響應返回到我們的調用頁面,我們有一些js讀取狀態描述並輸出(例如,在警報中)。它看起來像這樣:

樣品行動

[CustomExceptionHandler] 
     public ActionResult Save(SomeViewModel viewModel) 
     { 
//do stuff 

} 

CustomExceptionHandler類

public class CustomExceptionHandler : HandleErrorAttribute 
{ 
    public override void OnException(ExceptionContext filterContext) 
    { 
     handleException(filterContext); 
    } 

    private void handleException(ExceptionContext filterContext) 
    { 
     filterContext.HttpContext.Response.StatusCode = 500; 
     filterContext.HttpContext.Response.StatusDescription = HttpUtility.UrlEncode(filterContext.Exception.Message); 

     filterContext.ExceptionHandled = true; 
     filterContext.HttpContext.Response.Clear(); 
     filterContext.HttpContext.Response.End(); 
    } 
} 

使用Javascript(例如用Ajax調用)

function onFormFailure(context) { 
    alert(context.statusText); 
} 

我們喜歡的事情是,異常的消息與顯示分離。因此,如果我們想要以警報,模式或內聯方式顯示消息,我們可以獨立更改。

+0

這真的很有幫助。謝謝! – user3070072

0

您需要從客戶端JavaScript代碼生成的警報。下面利用jQuery的AJAX功能:

$.ajax({ 
    url: "/YourUrl", 
    data: { id = yourIdVariable } 
}) 
.done(function(jqXHR) { 
    alert("success"); 
}) 
.fail(function(jqXHR) { 
    alert("Error with status code" + jqXHR.status); 
}) 
.always(function(jqXHR) { 
    alert("complete"); 
}); 

裁判:http://api.jquery.com/jquery.ajax/