【发布时间】:2015-12-12 13:09:55
【问题描述】:
我正在阅读很多关于此的文章和帖子,但我无法解决我的问题。
我在 aspx.cs 页面中有一些方法。方法不返回任何内容,它只是更改标签、文本框等中的值...
[System.Web.Services.WebMethod]
public void MethodName()
{
//some code
}
在前端我有应该调用此方法的单选按钮。当我调用重新加载页面的常规服务器端方法(rdbMethodName_CheckedChanged)时,它会起作用。现在我想在不重新加载的情况下调用这个方法。我试过使用 Ajax
<asp:RadioButton ID="rbTwoSub" runat="server" GroupName="Subscription" value="2" AutoPostBack="false" OnCheckedChanged="rdbMethodName_CheckedChanged" />
要调用 ajax 方法,我将 AutoPostBack 设置为 false 并创建 js 来调用它
$("#ctl00_PageContent_rbTwoSub").change(function () {
$.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
url: "buy_sql_tools_new.aspx/MethodName?Product=ProductName",
success: function (data) {
console.log('Success: ', data);
},
error: function (data) {
console.log('Error: ', error);
}
});
});
此代码在没有参数且不调用此方法的页面的控制台控制台 html 代码中返回。
我只需要调用将更改所有值的后端方法就可以了。有谁知道如何做到这一点。
我想到的只有一件事,那就是将所有 C# 代码重写为 javascript 代码并在点击时仅调用 js 方法
-------- 2015 年 12 月 16 日编辑
您好,我尝试调用简单的 ajax 帖子,它会返回单个值,但它也不起作用
下面是代码
$.ajax({
type: "POST",
url: "buy_sql_tools_new.aspx/HelloWorld",
data: "{}",
contentType: "application/json",
dataType: "json",
success: function (msg) {
alert(msg);
},
error: function (msg) {
console.log('error' + msg);
}
});
aspx.cs
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public static string HelloWorld()
{
return "Hello";
}
【问题讨论】:
-
您将不得不像 AJAX 调用服务器一样获取新值,然后使用客户端模板引擎(例如把手,或其他类似 Tao author)在浏览器不刷新页面
-
标记中仍有
OnCheckedChanged- 您需要向控件添加点击事件侦听器,因为 RadioButton 没有 OnClientClick 属性 -
@NikosM。 tnx,我明天要试试这个。
-
@JaromandaX 点击事件没有问题,它可以工作。 ajax 和传递值/更改存在问题
-
抱歉,我重新阅读了代码,我发现它在您已绑定到控件的更改事件中 - 但是,
OnCheckedChanged事件仍在触发 - 您是否尝试删除它?
标签: javascript jquery asp.net ajax webforms