【问题标题】:How to add a pop up dialog?如何添加弹出对话框?
【发布时间】:2014-01-28 14:49:20
【问题描述】:
我写信是想知道,每当“api_login 为空”时,我如何创建一个弹出对话框。我也想知道,怎么把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;
}
非常感谢
【问题讨论】:
标签:
c#
javascript
jquery
asp.net-mvc-3
asp.net-web-api
【解决方案2】:
我们在 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);
}
我们喜欢它的地方在于异常的消息与显示是分开的。因此,如果我们想在警报、模式或内联中显示消息,我们可以独立更改它。
【解决方案3】:
您需要从客户端上的 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/