如何在 ajax 调用中将错误消息传递给 mvc 视图

How to pass error message to mvc view in ajax call

本文关键字:消息传递 错误 mvc 视图 ajax 调用      更新时间:2023-09-26

我正在使用ajax在mvc按钮单击事件上调用控制器操作方法。控制器操作方法具有验证逻辑,如果失败,应通知用户错误。我不确定如何在 MVC 中实现这一目标。有没有办法从控制器向 ajax 成功事件发送错误消息?

 Controller Action Method
    [AcceptVerbs(HttpVerbs.Post)]
    public ViewResult Index(ProfileSnapshotRequestModel pspm)
    {
        // Do something 
       return Json(new { success = true });
    }

MVC 视图按钮单击

   $("#copyData").click(function() {
            var selectedRowId = $('#ServersWS').jqGrid('getGridParam', 'selrow');
            var rowData = jQuery("#ServersWS").jqGrid('getRowData', selectedRowId);
            $("#MainDiv").prop('disabled', true);
            var url = '@Url.Action("Index")';
            HideElements();
            $.ajax({
                url: url,
                data: {
                            BaseEnvtId: $("#SelectedEnvironmentID").val(),
                            BaseVersionId: $("#SelectedVersionID").val(),
                            BaseProfileId: rowData['ProfileId'],
                            NewEnvtId: $("#SelectedEnvironmentID2").val(),
                            NewVersionId: $("#SelectedVersionID2").val(),
                            NewProfileId: $("#SelectedProfileID2").val(),
                },
                type: 'POST',
                datatype: 'json',
                success: function(data) {
                    document.getElementById('displaySuccess').style.display = 'block';
                    $("#ProfileCopyDiv").prop('disabled', true);
                    $("#MainDiv").prop('disabled', false);
                },
                error: function() { alert('something bad happened'); }
            });
        });

我能够通过将控制器操作返回类型更改为操作结果来解决它,然后使用 Json 对象返回我想要的数据 - 例如

    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Index(ProfileSnapshotRequestModel pspm)
    {
         // Do something 
        return Json(new { success = true });
    }