我写信时知道,只要“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 :(得分:1)
您可以使用JQuery弹出窗口来实现
答案 1 :(得分: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" );
});
答案 2 :(得分:0)
我们在Controller方法上使用一个名为'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);
}
我们喜欢的是异常的消息传递与显示分离。因此,如果我们想要以警报,模态或内联方式显示消息,我们可以单独更改它。