繁体   English   中英

页面加载时,@ Url.Action为null或javascript中的“”

[英]@Url.Action is null or “” in javascript when page loads

我在名为AccountCodes的控制器中有此功能。

    [ValidateAntiForgeryToken]
    [HttpPost]
    public async Task<ActionResult> Process()
    {
        JsonResult result = new JsonResult(null);
        List<string> uploadResults = new List<string>();
        return Ok(uploadResults);
    }

我的意图是使用dropzone将文件推送到此功能。 当我尝试在razor视图中的类似变量中加载url时:

var url = "@Url.Action("Process", "AccountCodes",new { area="Configurations"})";

但是,当我加载页面并查看控制台时,URL始终为“”。 我想念什么吗?

编辑:

这是我放置JavaScript代码的地方:

$(document).ready(function () {
    var url = "@Url.Action("Process", "AccountCodes",new { area="Configurations"})";
    $("#reset").attr("disabled", true);
});

您的代码是正确的。 可能是因为您有一些错误的全局配置。

请验证以下内容:

步骤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/zh-cn/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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM