【问题标题】:How to display succes or error message in MVC with Javascript?如何使用 Javascript 在 MVC 中显示成功或错误消息?
【发布时间】:2019-11-12 02:06:01
【问题描述】:

我想知道如何使用引导程序在我的 MVC 项目中通过控制器操作在成功或失败时显示成功或错误消息。例如,我得到了以下操作:

输入:

向控制器发送数据的Javascript方法:

              //Sends data filled in in modal to backend.
              $(document).ready(function () {
                $("#btnSubmit").click(function () {
                    var datastring = $("#myForm").serialize();

                    $.ajax({
                        type: "POST",
                        url: "/ApiBroker/AddApi",
                        dataType: 'json',
                        data: datastring,
                    });
                    $('#myModal').modal('hide');
                    $('body').removeClass('modal-open');
                    $('.modal-backdrop').remove();
                })
            })

控制器方法:

 [HttpPost]
    public ActionResult AddApi(ApiRedirect model)
    {
        var data = model;
        try
        {
            List<ApiRedirect> list = dbProducts.ApiRedirects.ToList();
            int companyID = dbProducts.Companies.Where(x => x.CompanyName == model.Company.CompanyName).FirstOrDefault().CompanyID;
            int mappingID = dbProducts.MappingNames.Where(x => x.Name == model.MappingName.Name).FirstOrDefault().MappingID;
            ApiRedirect api = new ApiRedirect();
            api.ApiName = model.ApiName;
            api.CompanyID = companyID;
            api.ApiURL2 = model.ApiURL2;
            api.MappingID = mappingID;
            api.ResponseType = model.ResponseType;
            dbProducts.ApiRedirects.Add(api);
            dbProducts.SaveChanges();
            return View ();
        }
        catch (Exception ex){
            throw ex;
        }
    }

如果 AddUser 方法将用户添加到我的数据库中,我想显示一条错误消息,如果没有添加用户,我想显示一条错误消息。我不知道如何实现这一点,有什么建议吗?

提前致谢!

更新

所以警报有效,但 POST 调用收到以下内部服务器错误:

【问题讨论】:

  • 您可以使用 ViewBag、TempData 甚至,因为您使用的是 ajax post,您可以返回一个字符串并将其显示给用户

标签: c# asp.net twitter-bootstrap model-view-controller error-handling


【解决方案1】:

首先你需要更新 ajax 以使用成功或失败

     $.ajax({
            type: 'POST',
            url: "/ApiBroker/AddApi",
            data: datastring,
            dataType: 'json',
            success:
                function(data){
                    //... put your logic here 
             },
            error:
                function(){ alert('error'); }
        });

其次,您需要更新控制器操作以返回 IHttpActionResult,您可以在其中指定响应消息。

如果你看这个

HttpResponseMessage

【讨论】:

  • 不知何故,这段代码给了我“错误”警报,但数据被添加到我的数据库中。
  • Success / Error 并不总是必要的。主要取决于您调用的方法的返回
  • @JamesS 是的,没有必要,但正如 OP 所说,他需要知道状态。
  • @NielsStenden 我忘记了将数据类型添加到 Ajax 调用中,您在哪里遇到错误?请发布您的代码。
  • @NielsStenden 我会在 ajax 请求中为 URL 使用以下代码: url: '@Url.Action("ACTION", "CONTROLLER")', 该错误表示 MVC 正在搜索并且找不到控制器/动作。如果 URL 不起作用,您能否发布完整的控制器代码。也用 [HttpPost] 装饰你的方法
猜你喜欢
  • 2021-03-02
  • 2021-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-16
  • 2016-12-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多