【问题标题】:Message from stored procedure to alert box in view来自存储过程的消息到视图中的警报框
【发布时间】:2020-07-29 23:37:45
【问题描述】:

我正在向存储过程发送参数,存储过程返回一条消息,要么成功,要么出错。

public IActionResult Index() => View();

public async Task<IActionResult> Upload(IFormFile file) 
{
    int cmdResponse = Convert.ToInt32(cmd.Parameters["@response"].Value);
            string cmdMessage = cmd.Parameters["@message"].Value.ToString();
            if (cmdResponse == 0)
            {
                con.Close();
                return RedirectToAction("Index", Json(new { status = "error", message = cmdMessage }));
            }
            return RedirectToAction("Index", Json(new { status = "success", message = cmdMessage }));

}

这是使用 Javascript 的视图,我尝试在警报框中显示来自存储过程的消息。

<script>

    $(function () {
        $("#btn").click(function () {
            dangerResponseMessage('btn');
        });
    });

    function dangerResponseMessage(result) {
        var url = window.rootUrl + 'Upload/Upload';

        $.ajax({
            type: "GET",
            url: url,
            dataType: 'json',
            success: function (result) {
                alert(result.message);
            },
            error: function (xhr, ajaxOptions, thrownError) {
                alert(result.message);
            }
        });
    }
</script>

问题是警告框显示未定义

当我解除警报时,它会从浏览器中 URL 中的存储过程返回消息。

URL 中的西里尔字母是我试图在警告框中显示的消息。 ajax 调用没有数据,因为我不需要从视图向控制器发送任何内容。 关于为什么它在 URL 中而不是在警报框中显示消息的任何想法?

【问题讨论】:

    标签: javascript c# asp.net-mvc alert


    【解决方案1】:

    您是否尝试过仅使用 console.log(result) 来准确确认您得到了什么?如果您的代码在“错误”中失败,那么“结果”是否存在?看起来它属于“成功”,这也可能是它失败并显示在地址栏上的原因。

    【讨论】:

    • 当您想提供帮助但无法发表评论时,这真是太可惜了,我知道,我去过那里:)。也就是说,当这个“答案”被否决时,不要把它当作个人。
    • hmm,console.log打印上传按钮的ID。
    猜你喜欢
    • 2016-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-07
    • 1970-01-01
    相关资源
    最近更新 更多