javascript中的ASP MVC2执行控制器方法
在我的ASP应用程序中,我试图从数据库中检索一个值。我尝试从javascript执行一个控制器方法 Javascriptjavascript中的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);
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);
});
}