通过ajax从客户端调用C#方法来执行C#方法
Executing a C# method by calling it from client-side by ajax
我正在尝试使用以下技术执行服务器端方法:
Javascript Ajax函数
function storeLocal(brand, type) {
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
data: "{brand:'" + brand + "'}",
url: "Jquery Site.Master/storeLocal",
datatype: "json",
success: OnSuccess(brand),
});
}
function OnSuccess(brand) {
alert(brand);
}
C#方法:
[WebMethod]
public static object storeLocal(string brand)
{
HttpContext.Current.Session.Add("Brand", brand);
}
要执行的代码行是:
<li>
<a class="strong" onclick="storeLocal('petzl','harness')" href="About.aspx">Harnesses</a>
</li>
但是它执行不正确,我的代码中有什么特别的错误吗?我之所以使用这种方法,是因为我想为一个小项目提供一个动态菜单,并希望在会话中存储用户在会话中选择的特定"li",这样我就可以在重定向页面中加载内容。非常感谢Adrian
您的方法中没有返回,这可能是问题所在,您的方法应该如下所示
[WebMethod]
public static object storeLocal(string brand)
{
HttpContext.Current.Session.Add("Brand", brand);
return "value" +brand;
}
我可以在您的ajax
请求中看到几个错误:
url
参数值不是正确的URL- 您没有正确分配
OnSuccess
方法
尝试将其更改为:
function storeLocal(brand, type) {
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
data: "{brand:'" + brand + "'}",
url: "ProperSiteUrl/storeLocal",
datatype: "json",
success: OnSuccess,
});
}
并且您不会从storeLocal
web方法返回任何内容。尝试将其更改为:
[WebMethod]
public static object storeLocal(string brand)
{
HttpContext.Current.Session.Add("Brand", brand);
return ...;
}
此外,您将JSON发送到服务器,但是,对于单个参数,您可能会发现将其作为密钥/值对发送更容易,例如
...
data: "brand=" + brand
...
我不确定您的代码是否正确!您已经给出了href和onclick,页面甚至可能在onclick-ajax事件完成之前就导航到about.aspx。
尝试删除href或将onclick事件放入href='javascript:storelocal()'中,然后从webmethod返回值。
在web方法中保留一个断点,看看内容是否被传递到web方法。
url和成功看起来并不好。
1-在ajax调用中,您不会将参数传递给success函数。它将由c中指定的web方法返回一些内容。您可以在数据适当性中指定数据,并将其用作传递给web方法的参数。
2-您不能使用母版页调用Web方法,它必须在您正在工作的页面中指定。aspx文件而不是主文件。页面继承自母版,但它不是母版。是一个具有母版页文件规范的页面。
尝试这个来识别错误,这是为了查看返回的
error: function (error) {
alert(JSON.stringify(error));
}
相关文章:
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- 递归使用 eval() 是检查程序执行的好方法吗?
- 如何防止jQueryonclick事件中的Ruby方法在页面刷新时执行
- 通过ajax从客户端调用C#方法来执行C#方法
- 有没有一种方法可以让内联事件处理程序在元素创建后立即执行
- 有没有一种方法可以通过只引用JavaScript来执行代码
- 如何使用get或post方法连接和执行ajax
- 从 ajax .post 方法执行 PHP 页面后显示它
- Javascript 方法执行顺序
- 同步 jquery 调用 - 如何等到 jquery 方法执行竞争
- 在javascript中,循环是在get方法执行之前执行的
- 当用户试图删除indexedDB数据库时,是否有方法执行函数
- 如何停止for循环执行,直到for循环内部的DWR方法执行完成
- setTimeout方法执行一次
- 在方法执行之间等待一段时间
- 当按ok在对话框服务器方法执行,如果按取消留在我的页面上.如何去做
- 如何停止setTimeout中定义的方法执行
- 是否有可能使用任何方法执行javascript代码
- 在jQuery中添加属性时,使用attr()方法,将属性作为键值对象传递,还是直接传递,哪种方法执行速度最快?
- Javascript方法执行和触发事件