页面加载时,@Url.Action 在 javascript 中为 null 或 ""
Posted
技术标签:
【中文标题】页面加载时,@Url.Action 在 javascript 中为 null 或 ""【英文标题】:@Url.Action is null or "" in javascript when page loads 【发布时间】:2019-12-28 08:15:51 【问题描述】:这个函数位于一个名为 AccountCodes 的控制器中。
[ValidateAntiForgeryToken]
[HttpPost]
public async Task<ActionResult> Process()
JsonResult result = new JsonResult(null);
List<string> uploadResults = new List<string>();
return Ok(uploadResults);
我的意图是使用 dropzone 将文件推送到此功能。当我尝试在剃刀视图中以这样的变量加载 url 时:
var url = "@Url.Action("Process", "AccountCodes",new area="Configurations")";
但是,当我加载页面并查看控制台时,网址始终为“”。我错过了什么吗?
编辑:
这是我放置 javascript 代码的地方:
$(document).ready(function ()
var url = "@Url.Action("Process", "AccountCodes",new area="Configurations")";
$("#reset").attr("disabled", true);
);
【问题讨论】:
更好地显示你把这个javascript代码放在哪里 是的,我已经把它放在我的编辑中了 var url = '@Url.Action("Process", "AccountCodes",new area="Configurations")',用单引号试试。 带引号或不带引号仍然为空。我也把它放在准备好的文档之外,但它仍然是空白的。 【参考方案1】:您的代码是正确的。可能是因为你有一些错误的全局配置。
请确认以下事项:
第 1 步:检查您的申请
在你的启动中使用 MVC:
// Startup.cs
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
// Other middlewares.
app.UseMvcWithDefaultRoute();
第 2 步:检查您的控制器
确保有一个名为 AccountCodesController
的控制器。
确保AccountCodesController
扩展Controller
。
检查您的路线。如果您为控制器指定[Route("Something")]
,请确保它绝对正确。
第 3 步:尝试为您的操作添加路线。
将属性[Route('SomeAction')]
添加到您的操作Process
可能会解决此问题。
第 4 步:检查您所在区域的存在情况
请确保您的控制器位于本文档所述的正确区域:https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/areas?view=aspnetcore-2.2#areas-for-controllers-with-views。
namespace MVCareas.Areas.Products.Controllers
[Area("Products")]
public class ManageController : Controller
【讨论】:
奇怪的是,当我删除我的区域时,会出现 url 您好,我猜您的项目文件夹结构没有遵循正确的区域结构。请参考此文档并检查您的区域配置:docs.microsoft.com/en-us/aspnet/core/mvc/controllers/…以上是关于页面加载时,@Url.Action 在 javascript 中为 null 或 ""的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET MVC jQuery 自动完成与页面中包含的脚本中的 url.action 助手