如何显示警报,弹出窗口或消息,如果文件不是在MVC中创建的

本文关键字:文件 如果 消息 创建 MVC 窗口 显示 何显示 | 更新日期: 2023-09-27 18:06:39

我有一个动作方法:

public ActionResult Export(int? protocol, int? visitno)
{
    SetViewBagItems();
    if(protocl.hasValue)
    {
        // code create file
        if (!string.IsNullOrEmpty(csvData))
        {
            return File(new System.Text.UTF8Encoding().GetBytes(csvData), "text/csv", "Report.csv");
        }
        else
        {
            // need to show something in ui like, not able to create file, or any popup or any alert.... 
        }
    }
    return view();
}
因此,在前面提到的代码中,当能够创建文件时,我需要显示类似警报或消息的东西。

现在的行为是:

    如果文件被创建,它将被直接下载,不会重新加载页面。
  • 如果没有创建文件,则刷新整个页面。

我需要显示一些信息而不是那个

第一次加载时使用相同的控制器方法。

我怎样才能做到这一点?

如何显示警报,弹出窗口或消息,如果文件不是在MVC中创建的

使用$.ajax()在控制器中调用该函数。喜欢:

    $.ajax({
        url: "/controller/action",
        type: "GET",
        data: {protocol: protocol, visitno: visitno},
        success: function(e) {
             if(e != null)
             {
                  //Alert
             }
             else {
                  //Alert
             }
        }
   })

您可以从您的操作方法返回JSON结果:

return Json(new { 
                  success = true, 
                  status = "Failure" 
                }, JsonRequestBehavior.AllowGet);

调用action方法的ajax方法,检查返回状态,并在对话框中或通过警报显示错误或成功消息:

$.ajax({
     type: "POST",
     url: "/Controller/Action",
     data: { "ID": $('#id').val() },
     success: function (data) {
     if (data.status == "Failure")
      {
          $('#dialog-Add-Success').dialog({
          modal: true,
          opacity: 1,
          buttons: {
           Ok: function () {
                            $(this).dialog('close');
                           }
            },
         })
       }