【问题标题】:Jquery ajax call inside MVCMVC内部的jQuery ajax调用
【发布时间】:2011-02-10 17:15:37
【问题描述】:

我使用自制框架...我想使用 jquery 进行 ajax 调用,但我不知道如何传递 url...我的意思是如果我有控制器“类别”和操作“索引” ajax调用会是这样吗?

$.ajax({
    type: "POST",
    url: "http://localhost/learning/categories/index/",

});

【问题讨论】:

    标签: php jquery ajax model-view-controller


    【解决方案1】:

    这个怎么样?

    var controller = "categories";
    var action = "index";
    var myURL = "http://localhost/learning/" + controller + "/" + action + "/";
    
    $.ajax({
        type: "POST",
        url: myURL 
    });
    

    【讨论】:

      【解决方案2】:

      您的 JavaScript 是否在 ASP.NET MVC 视图中?如果是这样,您可以使用 Url.Action 即时生成 URL。

      $.ajax({
        type: "POST",
        url: '<%: Url.Action("index", "categories")%>',
      });
      

      如果您的 JavaScript 位于单独的 .js 文件中,那么您就增加了一点复杂性。

      我的解决方案是动态呈现 .js 文件(即,将 scripts.js 路由到返回内容类型为 text/javascript 的视图的操作方法)。

      我也尝试将 URL 从渲染视图传递到 .js 文件,但这似乎比上述解决方案更混乱。

      在周二的 MVC Conf 中,有人建议您简单地避免同时支持相对 URL 和绝对 URL - 因此您可以对基本 URL 做出假设。这也有效...

      【讨论】:

      • 很抱歉没有提到框架是用 php 编写的,任何关于 mvc 中 ajax 调用的文档都会很棒!
      • 那么您是在 PHP 呈现的页面中通过 JQuery/Ajax 调用 ASP.NET MVC 方法吗?在这种情况下,您必须硬编码或构建 URL(如果您知道应用程序根、控制器和操作,则可以构建它 - 只要 MVC 应用程序使用默认路由规则)。您可能还需要在 Ajax 调用中提供参数 (data:) 和返回类型 (dataType:)。
      • 实际上我根本没有使用 ASP.NET,只是这里解释的框架的自定义版本link
      • 您可能想在您的问题中添加一个 PHP 标记 - 您会得到更多可能了解该框架的人。如果 PHP 框架支持像 Url.Action 这样为您生成 URL 的东西,那将是最好的。否则,您必须为控制器的操作方法构建与您的路由相对应的 URL。
      猜你喜欢
      • 2015-01-19
      • 1970-01-01
      • 2012-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-16
      • 1970-01-01
      相关资源
      最近更新 更多