[英]@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);
});
您的代码是正确的。 可能是因为您有一些错误的全局配置。
请验证以下内容:
在启动时使用MVC:
// Startup.cs
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
// Other middlewares.
app.UseMvcWithDefaultRoute();
}
确保有一个名为AccountCodesController
的控制器。
确保AccountCodesController
扩展了Controller
。
检查您的路线。 如果为控制器指定[Route("Something")]
,请确保其绝对正确。
将属性[Route('SomeAction')]
到操作Process
可能会解决此问题。
请确保您的控制器位于本文档所述的正确区域: 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.