请帮帮我。我是asp.net的新手。如何在asp.net网页表单中编写动态javascript?我想要做的是如下代码。
以下代码位于服务器端的按钮单击事件中,以c#编写。请帮帮我。
if(Email.send()){
//show javascript alert box
}else{
//show javascript alert box
}
答案 0 :(得分:0)
创建一个通过AJAX调用的web方法,并根据该函数的结果弹出javascript警报。
示例(在您的.aspx页面中):
function doSomething() {
$.ajax({
type: "POST",
url: "Do_Something.aspx/DoSomething",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
alert(response);
}
});
在Do_Something.aspx.cs中:
[WebMethod]
public static string DoSomething()
{
if (Email.Send)
{
return "success";
}
return "not a success";
}
答案 1 :(得分:0)
使用asp.net,所有服务器端代码将在Web页面发送给最终用户之前运行,然后将该代码的结果注入HTML / Javascript。
此外,将服务器端代码注入javascript时,您需要在字符串文字(引号)中执行此操作。
所以,如果你有一个javascript点击处理程序:
if ("@Email.Send()") {
// stuff
} else {
// other stuff
}
将运行Email.Send()命令,该命令的结果将放在Html中。如果您的Send函数返回了一个布尔值,我假设它是这样,返回给您的最终用户的Html将如下所示:
if ("true") {
// stuff
} else {
...
我认为这不是你想要的结果。执行此操作的正确方法是在您的单击命令中通过AJAX触发服务器上的另一个命令,并将该AJAX命令的结果用于您的逻辑。它看起来像这样:
function clickHandler() {
$.ajax({
type: "POST",
url: "UrlToYourServerSideAction",
data: {
WebParam1: "value",
WebParam2: "value"
},
success: function (response) {
if (response == "true") {
// code if Web Method returns true
} else {
// code if Web Method returns false
}
}
});
}