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) {
}
});
答案 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。