【发布时间】:2021-07-16 20:34:30
【问题描述】:
我在 .NET Framework 4.8 中运行 ASP.Net MVC 5。由于生成的 URL 不一致,我不断收到 404 错误。例如,在包含在每个页面顶部的 _PageNav.chstml 部分中,我将以下内容带回主页:@Url.Action("Index", new { controller = "Home" })。在导航栏中,这将解析为 <a class="navbar-brand" href="/" /> 并正常运行。
当我在同一页面上使用相同的 @Url.Action("Index", new { controller = "Home" }),但稍后在按钮上使用时,它会解析为:<a id="doneButton" class="btn btn-secondary px-4" href="https://localhost:44337/smrt/">Done</a>
由于这种不一致,我经常遇到这样的问题,即对控制器的 AJAX JavaScript 引用最终会丢失控制器引用,例如 /create 导致 https://localhost:44337/create 而不是 https://localhost:44337/home/create 或 /home/create 导致 https://localhost:44337/home/home/create 而不是https://localhost:44337/home/create
由于安全限制,我也有一些限制;例如,我不能在页面本身上有任何 JavaScript,所以我不能在我的 .cshtml 文件中编写会生成 JavaScript 的剃须刀代码。我只能使用页面源文件中引用的 JavaScript。
【问题讨论】:
标签: javascript c# ajax asp.net-mvc url.action