【问题标题】:ASP.NET MVC calling a differen't controller's action from JavaScriptASP.NET MVC 从 JavaScript 调用不同的控制器操作
【发布时间】:2011-04-20 23:26:53
【问题描述】:
【问题讨论】:
标签:
jquery
asp.net-mvc
ajax
【解决方案1】:
既然你已经有了带参数的 url,你可以这样做:
ResolveUrl("~/Bar/DoSomething?param=val");
这会将给定的虚拟网址转换为绝对网址
【解决方案2】:
至少有3种可能性:
1 - 您可以在 javascript 中设置一个“全局”变量,在其中设置 Web 应用程序库的值,并将“http://somedomain.com/someapp/”替换为该变量:
var liveString = "http://" + window.location.host;
if (liveString.indexOf('somedomain.com') > 0) {
liveString = liveString + '/someapp';
} else if (liveString .indexOf('localhost') > 0) {
liveString = liveString + '/localApp';
}
你也可以有一个链接,你可以在 jQuery 中获取 url:
<a id="link-id" href="<%Url.Action("ActionName", "ControllerName", new { param = val })%>" style="display:none;"></a>
var myUrlCall = $('#link-id').href;
您还可以使用其他端口在 IIS 7 的根目录中创建应用程序,或者将其添加到主机文件中,以便您的 url 看起来像:htttp://someapp.local,我们使用最后一个选项,因为它是一个更好地代表实时应用程序。
如果您需要更多帮助,请告诉我!
【解决方案3】:
查看 Ajax.ActionLink
您可以在此处指定控制器的名称,以及在成功、失败等时调用的代码。
ASP.NET MVC 2