簡體   English   中英

如何在Ajax調用中將錯誤消息傳遞給MVC視圖

[英]How to pass error message to mvc view in ajax call

我正在使用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 });
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM