我想在价格范围内实现jquery滑块,我尝试使用jquery ajax
调用页面Web方法,但是在网页方法的情况下它不起作用但是如果我只是更改ajax的URL属性拨打webservice
,然后完全调用它。我是在几个小时内尝试这个,而没有找到任何背后的逻辑。这是我的代码
<script type="text/javascript">
var startPosition;
$(document).ready(function () {
var hdnMinPrice = 142;
var hdnMaxPrice = 969;
$("#slider").slider(
{
min: hdnMinPrice,
max: hdnMaxPrice,
range: true,
values: [hdnMinPrice, hdnMaxPrice],
step: 50,
slide: function (event, ui) {
$('#lbl').text(ui.values[0] + ' - ' + ui.values[1]);
},
start: function (event, ui) {
startPosition = ui.value;
//alert('Slider started at: ' + ui.value);
},
stop: function (event, ui) {
$.ajax({
type: "POST",
//url: SearchResult.aspx/FilterByPrice",
url: "WebService.asmx/InsetSubscriber",
data: "{email: '250@yahoo.com'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
alert('Thanks');
// Do something interesting here.
}
});
return false;
}
});
});
</script>
注释掉URL选项是页面Web方法,以下是网页方法的定义
[WebMethod]
public void FilterByPrice(string email)
{
Response.Write("min" + email);
//Response.Write("max" + max);
}
其中Web服务方法如下:
[WebMethod]
public void InsetSubscriber(string email)
{
DALSubscriber objSubscriber = new DALSubscriber();
objSubscriber.InsertSubscriber(email);
}
我再次在此代码段后重复我的问题。 使用Web服务方法的相同方法在jquery ajax调用中运行时,页面Web方法无效
答案 0 :(得分:2)
这是因为PageMethods 必须在您的网页上是静态的
试试这个:
[WebMethod]
public static void FilterByPrice(string email)
{
// Use HttpContext.Current.Response instead
// Response.Write("min" + email);
//Response.Write("max" + max);
}
答案 1 :(得分:1)
我建议你在httpmodule部分检查你的web.config。它必须具有ScriptManager的ScriptModule,因为Web页面方法可以使用它
<system.web>
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</httpModules>
</system.web>
答案 2 :(得分:0)
添加EnablePageMethods =“True”和EnableScriptGlobalization =“True”
希望它能运作