如何添加弹出对话框?

时间:2014-01-28 14:49:21

标签: c# javascript jquery asp.net-mvc-3 asp.net-web-api

我写信时知道,只要“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;
    }

非常感谢

3 个答案:

答案 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" );
});

参考:http://api.jquery.com/jquery.ajax/

答案 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);
}

我们喜欢的是异常的消息传递与显示分离。因此,如果我们想要以警报,模态或内联方式显示消息,我们可以单独更改它。