如果您已实施ASP.NET路由,则ASP.NET中的PageMethods无法正常工作
发布时间:2020-12-15 23:59:46 所属栏目:asp.Net 来源:网络整理
导读:我有一个网络方法: [System.Web.Services.WebMethod]public static string getCharacterstics(int product_id,int lang_id){ // code goes here...} 我想使用PageMethods访问它,例如: (假设我在ScriptManager中启用PageMethods的条件): script type="text
我有一个网络方法:
[System.Web.Services.WebMethod] public static string getCharacterstics(int product_id,int lang_id) { // code goes here... } 我想使用PageMethods访问它,例如: <script type="text/javascript"> $(document).ready( function () { $('#characterstics').html("loading"); // '<%= product_id_property %>','<%= this.LanguageID %>' PageMethods.getCharacterstics(0,OnSave); } ); function OnSave(result) { } </script> 我得到错误“http动词帖子访问路径..是不允许的” 我搜索了它并搜索了SO,但没有得到任何有关它的解决方案基于ASP.NET路由. 我认为,由于asp.net路由,服务方法无法访问. 另外我认为我甚至不能使用JSON,因为asp.net路由也是如此. 任何帮助表示赞赏. 更新: 如果我用这个网址运行页面: 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()是我应该写的选项. 解决方法
目前,WebMethods不能与Routing框架透明地工作.有一个工作.您必须通过在javascript中执行以下操作直接访问PageMethods:
PageMethods.set_path('/the/path/to/your/page.aspx'); PageMethods.YourMethod(params,onSuccess,onFailure); 我希望这有帮助. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- asp.net-mvc – 基于属性名称的共享编辑器模板?
- asp.net-mvc – Asp.Net MVC – “动态”路由的最
- 如何在ASP.NET中使用多个授权方案发布相应的承载
- asp.net-mvc – TempData在第二个请求后不会被破
- asp.net-core – 无法在VS2015中定位netstandard
- asp.net-core – .Net Core中的Big-Endian处理
- prolog – 如何理解ASP中的否定失败?
- asp.net-mvc – 如何开始使用多租户MVC应用程序
- asp.net-mvc – 如何在jqgrid中创建两个页脚行
- asp.net-mvc – 如何测试MVC3 razor布局中是否存
热点阅读