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

时间:2017-05-04 19:01:33

标签: 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);
});

Controller(Home)

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> 

这是Browser Console的输出。因此,有时它会记录URL而不会出错。

This is the ouput

1 个答案:

答案 0 :(得分:1)

问题似乎与您的网址有关,在javascript中您不需要放置&#39;〜&#39;使用您的网址,您可以使用

var url = "/Home/Capital";

MVC中更好的URL方法是通过传递控制器和操作名称来使用@URL,如下所示

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

因此,您可以修改您的javascript,如下所示,在您的操作中添加一个断点&#34; Captial&#34;并且看到你接到一个电话,你也可以查看浏览器控制台并查看是否发生任何错误。

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);
    });
}

EDIT 或者

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

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

如果您需要更多信息,请与我们联系。