如何显示警报,弹出窗口或消息,如果文件不是在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();
}
因此,在前面提到的代码中,当能够创建文件时,我需要显示类似警报或消息的东西。
现在的行为是:
- 如果文件被创建,它将被直接下载,不会重新加载页面。
- 如果没有创建文件,则刷新整个页面。
我需要显示一些信息而不是那个
第一次加载时使用相同的控制器方法。
我怎样才能做到这一点?
使用$.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');
}
},
})
}