gpt4 book ai didi

c# - C# 中的 JavaScript 函数返回 bool 值

转载 作者:行者123 更新时间:2023-11-29 22:04:50 24 4
gpt4 key购买 nike

如何从 JavaScript 函数向 C# 代码返回 true/false?

我的代码有什么问题?

ASP.NET

< asp:HiddenField ID="hiddenFieldResult" runat="server" />

JavaScript

< script type="text/javascript">
< !--
function deleteUser(userName) {
var retVal = confirm("Delete " + userName + "?");
if (retVal == true) {
document.getElementById('<% =hiddenFieldResult.ClientID %>').value = true;
return true;
}
else {
document.getElementById('<% =hiddenFieldResult.ClientID %>').value = false;
return false;
}
}
//-->
</script>

C#

Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", "deleteUser('" + user.userName + "');", true);
Label1.Text = "User is deleted? " + hiddenFieldResult.Value;

最佳答案

SLaks 是对的。您不能仅以这种方式将值从 JavaScript 传递到 C#。对于需要在 JavaScript(客户端代码)和 C#(服务器端代码)之间共享数据的简单情况,我通常会创建一个 ASPX 文件来接收 JavaScript 变量。

例如,在我的 HTML 中我有这个:

var Id = $(this).data("Id");
$.ajax({
type: "POST",
url: "catcher.aspx/doSomething",
data: '{ Id: ' + Id + ' }',
contentType: "application/json; charset=utf-8",
dataType: "json",
async: false,
success: function (data) {
// Do something on success
console.log(data.d);
// data.d returns "Hello World!"
},
failure: function (response) {
// Do something on failure
}
});

有了这个,我将发送 AJAX POST 到一个名为 catcher.aspx 的文件,该文件的代码隐藏文件中有一个名为 doSomething 的 WebMethod。看起来像这样:

namespace myNamespace
{
public partial class functions : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}

[WebMethod()]
public static string doSomething(string Id)
{
string something = "Hello World!";
return something;
}
}
}

总结一下。 JavaScript 通过 AJAX POST 调用 C# 中的方法。它发送和 Id 并得到一个字符串作为返回。您可以根据需要调整 JavaScript 和 C#。

如果您正在尝试向 C# 发送 bool 值,请将其发送。

function deleteUser(userName) {
var retVal = confirm("Delete " + userName + "?");
if (retVal == true) {
document.getElementById('<% =hiddenFieldResult.ClientID %>').value = true;
// POST true to example.aspx doSomething method
} else {
document.getElementById('<% =hiddenFieldResult.ClientID %>').value = false;
// POST false to example.aspx doSomething method
}
}

在 example.aspx.cs 中捕获它

namespace myNamespace
{
public partial class functions : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}

[WebMethod()]
public static string doSomething(boolean Id)
{
string something = "Hello World!";
return something;
}
}
}

顺便说一下,这需要 jQuery。希望对您有所帮助。

关于c# - C# 中的 JavaScript 函数返回 bool 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21609469/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com