2017-05-04 39 views
0

在我的ASP應用程序中,我試圖從數據庫中檢索一個值。從JavaScript我嘗試執行一個控制器方法。ASP MVC2在javascript中執行控制器方法

的Javascript

function getCapital(country) { 
//alert(country); 
var url = "~/Home/Capital"; 
$.get(url, { country: country }, function (response) { 
    $("#getCapital").html(response); 
    alert(response); 
}); 

控制器(首頁)

public string Capital(string country) 
{ 
    return capitalService.getCapital("Frankrijk"); 
} 

但我沒有得到任何結果。

編輯

查看

<script type="text/javascript" src="/Scripts/jquery-1.4.1.js"></script> 
<script type="text/javascript" src="/Scripts/World.js" ></script> 

這個瀏覽器控制檯的輸出。所以有時它會記錄URL而不會出錯。

This is the ouput

+0

public ActionResult Capital(string country) return capitalServiceService.getCapital(「Frankrijk」); } –

+0

@DaveClough我無法在ActionResult方法中返回一個類型字符串。 – NiAu

+0

是的,你可以,ActionResult包裝字符串 –

回答

1

問題是似乎與您的網址,在JavaScript中你不需要把「〜」與您的網址,你可以使用

var url = "/Home/Capital"; 

在MVC URL的更好的方法是通過控制器和動作名稱如下

@Url.Action("Capital", "Home") 

所以,你可以如下修改JavaScript使用@URL,將斷點在你的行動「Captial」,看看你g ^您也可以查看瀏覽器控制檯並查看是否有任何錯誤發生。

function getCapital(country) { 
    //alert(country); 
    var url = '@Url.Action("Capital", "Home")'; 

    console.log(url); 
    $.get(url, { country: country }, function (response) { 
     $("#getCapital").html(response); 
     alert(response); 
    }); 
} 

編輯 OR

function getCapital(country) { 
     //alert(country); 
     var url = "/Home/Capital"; 

     console.log(url); 
     $.get(url, { country: country }, function (response) { 
      $("#getCapital").html(response); 
      alert(response); 
     }); 
    } 

讓我知道如果你需要更多的信息。

+0

在browserconsol我現在得到一個ReferenceError:$沒有定義。 – NiAu

+0

@NiAu它基本上沒有正確加載jQuery或將其包含在您的JavaScript代碼之後,您必須在這些腳本之前包含jquery。查看代碼的源代碼並查看jQuery參考的位置。它看起來像。如果你不明白,那麼從瀏覽器分享你的頁面源代碼。 – Adil

+0

我使用瀏覽器控制檯日誌編輯了我的問題。 – NiAu

相關問題