2013-04-08 94 views
0

我写的AJAX调用看起来如下:使用剃刀jQuery中

<script type="text/javascript"> 
          $(function() { 
          $.ajax({ 
           url: @(Url.Action("_ModulePartial", "Home")), 
           dataType: 'html', 
           success: function(data) { 
           $('#_ModulePartial').html(data); 
           }, 
          }); 
         }); 
         </script> 
      } 

我想用Url.Action

调用在Home控制器_ModulePatial行动默认区
<script type="text/javascript"> 
            $(function() { 
            $.ajax({ 
             url: /Home/_ModulePartial, 
             dataType: 'html', 
             success: function(data) { 
             $('#_ModulePartial').html(data); 
             }, 
            }); 
           }); 
           </script> 
        } 

/主页/ _ModulePartial工作正常,但我想实现这个使用@ Url.Action,因为我们有2个不同的URl http:/TestUrl.com/Test/User/Login和http://TestUrl.com/User/Login,所以上述网址将无法在其中一个服务器下工作。作为第一个网址包含“测试”,它无法找到主控制器。

那么我们可以在Jquery中使用Url.Action吗?

Firebug的尝试使用@ Url.Action在第一个脚本

回答

0

明白了... :)

只需用单引号打电话的时候,给出了这样的错误

SyntaxError: missing } after property list 
[Break On This Error] 

url: /Home/_ModulePartial, 

。和它的作品

<script type="text/javascript"> 
          $(function() { 
          $.ajax({ 
           url: '@(Url.Action("_ModulePartial", "Home"))', 
           dataType: 'html', 
           success: function(data) { 
           $('#_ModulePartial').html(data); 
           }, 
          }); 
         }); 
         </script> 
      } 
+0

为了扩展这一点,请记住,在将页面发送到客户端之前,在服务器级别执行诸如Razor之类的ASP.NET调用。你正在做的是设置一个由服务器注入文本的占位符。一旦页面发送到客户端,占位符文本将已经被更改。 jQuery是一种客户端语言,由浏览器解释。所有的服务器端代码都将被替换,浏览器将只能看到ASP.NET调用的结果。我希望这是有道理的。 – Apache 2015-10-05 02:19:19

1

你需要在你的Ajax调用的区域名称,你必须做这样的:

'@Url.Action("_ModulePartial", "Home", new { area = "Test" })' 

下面是完整的Ajax调用:

<script type="text/javascript"> 
    $(function() { 
     $.ajax({ 
      url: '@Url.Action("_ModulePartial", "Home", new { area = "Test" })', 
       dataType: 'html', 
       success: function(data) { 
        $('#_ModulePartial').html(data); 
       }, 
      }); 
    }); 
</script> 

另外,确保脚本标记之后的额外“}”只是一个复制粘贴错误。