javascript - MVC - 链接到另一个 Controller /操作时出现问题

标签 javascript jquery ajax asp.net-mvc

我在 ControllerA 中有一个 View ,我想从该 View 中链接/链接到另一个 Controller (ControllerB) 中的 View ,并让该 View (ViewB) 在另一个浏览器选项卡中出现。我尝试了明显的方法..

从 View A..

<a href="/ControllerB/ActionB" target="_blank">SomeText</a> 

ActionB 执行通常的 return View();

问题是当我单击链接时,会打开一个新选项卡,但出现此错误..

找不到资源。 描述:HTTP 404。您正在查找的资源(或其依赖项之一)可能已被删除、名称已更改或暂时不可用。请检查以下 URL 并确保拼写正确。

请求的 URL:/ControllerB/ActionB

没明白。我可以100%保证该 Controller 存在于项目的Controllers/ControllerB目录中。

是的,我也尝试过这个..

<a href="@Url.Action("ActionB", "ControllerB")" target="_blank">SomeText</a>

但同样的问题。

(某种程度上)的工作原理是在 ViewA 中设置 href 来调用 jscript 函数 (href="javascript:function()")。该函数使用 jquery ajax 调用跳转到 ControllerB (使用与上面相同的 url),这实际上有效(它在调试器中的 return View() 处停止)。问题是,没有其他事情发生。没有打开新选项卡, View 也不会出现在任何地方。

我该怎么做/我做错了什么?

编辑:也尝试了同样的结果..

@Html.ActionLink("SignalR", "SRStart", "SignalR", null, new { target = "_blank" }) 

可能与路由有关?

编辑#2: 我以前见过这个版本的错误。根据我设置网址的方式,我会收到更详细的 404 错误,其中的详细信息包括此..

Requested URL http:// localhost:64528 /Home /~ /SignalR /SRStart

请注意,Home Controller (或目录 - 不确定)默认附加到我指定的导致错误的 url 前面。不知道为什么会发生这种情况,除了包含链接的 View 已脱离主 Controller (ControllerA)这一事实之外,但它正在发生,而且很痛苦。 所以我想现在的问题是 - 如何防止当前 Controller (主页)被附加到网址的前面?某处的某些应用程序设置?

最佳答案

这很有趣。当我发布我的操作方法时,我刚刚将属性从 [HttpPost] 更改为 [HttpGet],并不认为由于路径问题它会产生任何影响,但后来我再次运行它并且它起作用了。不会假装我理解为什么当我将 Post 作为属性时将 Home 附加到 url,但我猜这并不重要。所以它是附加到操作方法的属性。有趣的。谢谢大家..

关于javascript - MVC - 链接到另一个 Controller /操作时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30423186/

相关文章:

javascript - 如何限制除 jpg png 或 gif 之外的图像大小和扩展名

jquery - 任何 slider (几个问题)

java - Jquery Datepicker默认时间00 :00:00 GMT

javascript - 使用 AJAX 和 PHP 将数据数组插入 SQL 中

javascript - 我需要一些 javascript 条件,比如媒体查询

asp.net - 在 ASP.NET 中不使用 JavaScript 打开和关闭弹出窗口

javascript - 覆盖 Javascript 中的方法

javascript - 检查 Ember.js 中每个循环中的重复项

javascript - 无法通过nodemailer验证outlook地址

php - Woocommerce 结帐 - 使用 AJAX 添加折扣