当前位置: 首页 > 面试题库 >

如果已实现ASP.NET路由,则ASP.NET中的PageMethods将无法工作

淳于开畅
2023-03-14
问题内容

我有一个网络方法:

[System.Web.Services.WebMethod]
public static string getCharacterstics(int product_id, int lang_id)
{
    // code goes here...
}

我想使用PageMethods来访问它:(提供了在ScriptManager中启用Enable 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动词后无法访问路径..”

我在Google上搜索并搜索了SO,但是没有基于ASP.NET Routing的任何解决方案。

我认为是由于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不能与路由框架透明地工作。有一个解决方法。您必须通过在JavaScript中执行以下操作直接访问PageMethods:

PageMethods.set_path('/the/path/to/your/page.aspx');
PageMethods.YourMethod(params, onSuccess, onFailure);

我希望这有帮助。



 类似资料:
  • 本文向大家介绍asp.net-web-api 路由在ASP.NET WebAPI中的工作方式,包括了asp.net-web-api 路由在ASP.NET WebAPI中的工作方式的使用技巧和注意事项,需要的朋友参考一下 示例 在ASP.NETWeb API中,控制器是处理HTTP请求的类。控制器的公共方法称为动作方法或简称为动作。 Web API框架收到请求后,会将请求路由到操作。为了确定要调用的

  • 问题内容: 我想从JS调用静态服务器端方法,所以我决定在我的网站上使用ScriptManager控件。所以我有一个具有这样结构的母版页: 但是,当页面正在加载时,我有一个JS异常-PageMethods未定义。我以为该对象将被隐式创建,因此我可以在我的JavaScript中使用它。 问题答案: 我已经意识到为什么未找到PageMethod对象的原因,因为ScriptManager组件位于使用Pag

  • 本文向大家介绍剖析Asp.Net路由系统实现原理,包括了剖析Asp.Net路由系统实现原理的使用技巧和注意事项,需要的朋友参考一下 对于Asp.Net Web Forms应用来说,请求的Url都是对应一个具体的物理文件(http://xxx.com/default.aspx)。这样的Url与具体物理文件紧密绑定在一起,带来了诸多方便的局限:可读性、SEO优化等。为了解决这些局限性,微软引入了URL

  • 问题内容: 如何对ASP.Net Ajax-PageMethods进行同步调用和结果检索? 目前,我正在执行 异步 调用并处理数据: 我如何才能 与结果同步进行 ? 问题答案: 恕我直言,这对于ASP.NET AJAX是不可能的,因为生成的包装器使用异步调用。顺便说一下,您可以使用jQuery来调用PageMethod,而这需要进行设置。

  • 本文向大家介绍asp.net-mvc 路由基础,包括了asp.net-mvc 路由基础的使用技巧和注意事项,需要的朋友参考一下 示例 当您yourSite/Home/Index通过浏览器请求url时,路由模块会将请求定向到class的Indexaction方法HomeController。如何知道将请求发送到此特定类的特定方法?出现了RouteTable。 每个应用程序都有一个路由表,在其中存储路

  • 本文向大家介绍asp.net-core 路由约束,包括了asp.net-core 路由约束的使用技巧和注意事项,需要的朋友参考一下 示例 可以创建自定义路由约束,该约束可在路由内部使用以将参数约束为特定值或模式。 此约束将匹配典型的文化/地区模式,例如en-US,de-DE,zh-CHT,zh-Hant。 之后,必须先注册约束,然后才能在路由中使用约束。 现在,它可以在路线内使用。 在控制器上使用