【发布时间】:2011-12-30 03:17:36
【问题描述】:
我有一个网络方法:
[System.Web.Services.WebMethod]
public static string getCharacterstics(int product_id, int lang_id)
{
// code goes here...
}
我想使用 PageMethods 来访问它,例如: (前提是我在 ScriptManager 中启用了 PageMethods):
<script type="text/javascript">
$(document).ready(
function () {
$('#characterstics').html("loading");
// '<%= product_id_property %>' , '<%= this.LanguageID %>'
PageMethods.getCharacterstics(0 ,0 , OnSave);
}
);
function OnSave(result) {
}
</script>
我收到错误“不允许访问路径的 http 动词帖子..”
我用谷歌搜索了它并搜索了 SO,但没有得到任何关于它的解决方案,基于 ASP.NET 路由。
我认为由于 asp.net 路由,服务方法无法访问。
此外,我认为我什至不能使用 JSON,因为 asp.net 路由也是如此。
感谢任何帮助。
更新:
如果我使用这个 url 运行页面:
http://localhost:2606/searchdetail.aspx
web方法执行成功。
现在
我有这样的路由:
routes.MapPageRoute("searchdetail", "searchdetail/{ID}", "~/searchdetail.aspx");
routes.MapPageRoute("searchdetail", "searchdetail", "~/searchdetail.aspx");
set_path() 仅适用于案例 2,即没有 ID,但不适用于案例 1
如果我尝试
http://localhost:2606/searchdetail
效果很好
但如果我尝试使用:
http://localhost:2606/searchdetail/123
它给出了对象预期的错误。
所以 set_path() 是我应该写的选项。
【问题讨论】:
标签: c# asp.net json url-routing scriptmanager