javascript中的ASP MVC2执行控制器方法

javascript中的ASP MVC2执行控制器方法,javascript,asp.net,model-view-controller,controller,Javascript,Asp.net,Model View Controller,Controller,在我的ASP应用程序中,我试图从数据库中检索一个值。我尝试从javascript执行一个控制器方法 Javascript function getCapital(country) { //alert(country); var url = "~/Home/Capital"; $.get(url, { country: country }, function (response) { $("#getCapital").html(response); alert(response);

在我的ASP应用程序中,我试图从数据库中检索一个值。我尝试从javascript执行一个控制器方法

Javascript

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

但我没有得到任何结果

编辑

看法


这是浏览器控制台的输出。因此,有时它会记录URL而不出错


问题似乎在于您的URL,在javascript中,您不需要在URL中添加“~”,您可以使用

var url = "/Home/Capital";
MVC中URL的更好方法是通过传递控制器和操作名来使用@URL,如下所示

@Url.Action("Capital", "Home")
因此,您可以按如下所示修改javascript,在“capital”操作中设置断点,查看是否收到呼叫,也可以查看浏览器控制台,查看是否发生任何错误

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);
    });
}
编辑 或


如果您需要更多信息,请告诉我。

public ActionResult Capital(字符串国家){return capitalService.getCapital(“Frankrijk”);}@DaveClough我无法在ActionResult方法中返回类型字符串。是的,您可以,ActionResult将字符串包装在浏览器控制台中,我现在得到一个引用错误:$未定义。@NiAu基本上是因为jQuery没有正确加载或包含在javascript代码之后,您必须在这些脚本之前包含jQuery。请参阅代码的源代码,并查看jQuery引用的位置。看起来像。如果您不理解,请在浏览器中共享您的页面源代码。@NiAu您的视图的扩展名是(.cshtml)还是(.vb.html)?您是否尝试用(var url=“/Home/Capital”)替换(var url='@url.Action(“Capital”,“Home”)”)?答案已更新。新路线有效。我的视图的扩展名是.aspx。谢谢你的帮助!
@Url.Action("Capital", "Home")
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);
    });
}
function getCapital(country) {
        //alert(country);
        var url = "/Home/Capital";

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