如何在 C# 中使用警报消息来处理成功消息?

Posted

技术标签:

【中文标题】如何在 C# 中使用警报消息来处理成功消息?【英文标题】:How todo a success message with a alert message in c#? 【发布时间】:2021-09-23 19:35:00 【问题描述】:

我遇到了警报框的问题。我正在尝试做的是在我调用 c# 并且该函数可以正常工作之后,它会发出一条成功消息。但实际情况是,它会在一个全新的页面中发送成功消息。

public async Task<JsonResult> Upload(IList<IFormFile> files)

    //does my stuff 
    string msg = "Succesfully uploaded";
    return Json(new  Message = msg );

这是我做的脚本。

function Function() 
    $.ajax(
    
        url: "home/Upload",
        data: "hello",
        processData: false,
        contentType: false,
        type: "POST",
        success: function (data) 
            alert(data);
        
    )

这里是视图:

@using (html.BeginForm("Upload", "home", FormMethod.Post, new  enctype = "multipart/form-data" ))

    <input asp-file="file" id="files" name="file" onchange="CallFunction('files')" type="file" />
    <input type="submit" name="Submit" id="Submit" onclick="Function"  style="display:none" />

【问题讨论】:

能否也分享一下视图(.cshtml) sn-p。 是的,我可以分享它 【参考方案1】:

所以你需要把你的提交按钮改成这个

 <input type="button" value="Submit" onclick="Function()" name="Submit" id="Submit"/>

您可以看到我已将 type="submit" 更改为 type="button"。

您还可以删除 BeginForm 语法,因为您将使用 ajax 提交表单

这里是提交post请求的脚本

function Function() 

        $.ajax(
            
                url: "/Home/Upload",
                data: "hello",
                processData: false,
                contentType: false,
                type: "POST",
                success: function (data) 
                    alert(data);
                
            )

    

【讨论】:

【参考方案2】:

您必须使用 Ajax 发布表单。使用您的代码,整个页面将被发布到服务器。

改变观点:

@using (Html.BeginForm("Upload", "home", FormMethod.Post, new  enctype = "multipart/form-data" ,id = "uploadForm"))

    <input asp-file="file" id="files" name="file" onchange="CallFunction('files')" type="file" />
    <input type="submit" name="Submit" id="Submit" onclick="Function"  style="display:none" />

添加部分脚本

@section scripts  
 <script>
    $("#uploadForm").submit(function(e)  // note that it's better to use form Id to select form
        e.preventDefault(); // here you stop submitting form
        uploadFile();
    );

  function uploadFile() 
    $.ajax(
      url: "home/Upload",
      data: "hello",
      processData: false,
      contentType: false,
      type: "POST",
      success: function(data) 
        alert(data);
      
    )
   
  </script>

【讨论】:

【参考方案3】:

您正在向控制器发送错误类型的数据。你正在发送一个“字符串”,而 url:“home/Upload”也错了,必须是 url:“/home/Upload”

【讨论】:

【参考方案4】:
    function Function(inputId) 
    var input = document.getElementById(inputId);
     var files = input.files;
      var formData = new FormData();

      for (var i = 0; i != files.length; i++) 
       formData.append("files", files[i]);
  

  $.ajax(
    
      url: "/home/Upload",
      data: formData,
      processData: false,
      contentType: false,
      type: "POST",
      success: function (data) 
       alert(data);
      
    
  );

【讨论】:

以上是关于如何在 C# 中使用警报消息来处理成功消息?的主要内容,如果未能解决你的问题,请参考以下文章

使用Asp.net ajax不显示警报消息

如何在没有警报消息(iOS)的情况下在 webview 中获得地理定位许可?

更改推送通知警报消息

如何在 Java 中呈现简单的警报消息?

如何在 UserDefault 中存储推送通知警报消息?

jQuery - 如何在显示警报消息后阻止表单发布数据?