在ajax成功时调用c#方法

时间:2016-01-15 15:58:43

标签: javascript c# jquery asp.net ajax

MessageBox是另一个ascx,我试图在ajax成功后触发Message方法,但它在页面加载时触发。

MessageBox.ascx的页面加载为空白。它有一些可重复使用的javascript / c#messagebox内容。

    $.ajax({
        url: "/_Handler/DBFileUpload.ashx?ItemId=<%=ItemId%>",
        data: formData,
        processData: false,
        contentType: false,
        type: 'POST',
        success: function (data) {
            <% MessageBox.Message(MessageBox.MessageType.Success, "Congratz!", "File uploaded.")%>
        },
        error: function (errorData) {

        }
    });

正如Igor指出的那样,我返回了javascript函数,所以我可以直接调用ajax成功。

$.ajax({
    url: "/_Handler/DBFileUpload.ashx?ItemId=<%=ItemId%>",
    data: formData,
    processData: false,
    contentType: false,
    type: 'POST',
    success: function (data) {
        window[<%= MessageBox.MessageJS(MessageBox.MessageType.Success, "Congratz!", "File uploaded.")%>](arguments);
    },
    error: function (errorData) {

    }
   });

3 个答案:

答案 0 :(得分:3)

我首先建议你参加一些关于客户端开发的在线课程,因为你所尝试的东西永远不会奏效 其次,你要做的就是使用javascript警报非常容易;

http://www.w3schools.com/jsref/met_win_alert.asp

 $.ajax({
        url: "/_Handler/DBFileUpload.ashx?ItemId=<%=ItemId%>",
        data: formData,
        processData: false,
        contentType: false,
        type: 'POST',
        success: function (data) {
           alert("File uploaded.")
        },
        error: function (errorData) {

        }
    });

答案 1 :(得分:2)

  

你做不到。 Javascript运行客户端,C#运行服务器端。

实际上,您的服务器将运行所有C#代码,生成Javascript。然后,Javascript在浏览器中运行。如评论中所述,编译器不知道Javascript。

要调用服务器上的功能,您必须使用AJAX等技术。

 $.ajax({
       url: "/_Handler/DBFileUpload.ashx?ItemId=<%=ItemId%>",
      data: formData,
       processData: false,
       contentType: false,
        type: 'POST',
        success: function (data) {
              //if you have any data return from ajax call it's in data object

                 $("div").html("success");
        },
        error: function (errorData) {

      }
  });

答案 2 :(得分:1)

您可以输出(在呈现页面服务器端时)javascript / html以在客户端上显示消息框,并在ajax.success内触发该javascript。