页面加载时,@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 或 ""的主要内容,如果未能解决你的问题,请参考以下文章

剃刀页面视图模型类中的 Url.Action 备用

ASP.NET MVC jQuery 自动完成与页面中包含的脚本中的 url.action 助手

无法显示带有 asp.net mvc url.action 链接的引导对话框

URL.Action 在构造 URL 时包含 id

使用 URL 重写时的 Url.Action 不正确

尝试创建友好且“可破解”的 url 时使用 Url.Action() 时遇到问题