2013-04-08 90 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> 

另外,確保腳本標記之後的額外「}」只是一個複製粘貼錯誤。