簡體   English   中英

從ASP.NET Core 2.2遷移到3.1報錯404

[英]Migrate from ASP.NET Core 2.2 to 3.1 and error 404

從 ASP.NET Core 2.2 遷移到 3.1 后,我在發送表單時收到錯誤 404:

 <form id="SpecialShowCreateForm" method="post"
                  asp-controller="SpecialShow"
                  asp-action="CreateSpecialShowAsync"
                  role="form"
                  data-ajax="true" ,
                  enctype="multipart/form-data"
                <div class="form-group">
                      <input asp-for="Caption" >
                </div>
            </form>

    [HttpPost]
    [AjaxOnly]
    [ValidateAntiForgeryToken]
    public async Task<ActionResult> CreateSpecialShowAsync([FromForm]SpecialShowViewModel vm)
    {
        return Json(new { msg = ok });
    }

這些代碼也在 startup.cs 文件里面,需要做哪些改動呢? 公共 class 啟動 { readonly IConfigurationRoot 配置;

    public Startup(IWebHostEnvironment env)
    {
        Configuration = new ConfigurationBuilder()
        .SetBasePath(env.ContentRootPath)
        .AddJsonFile("appsettings.Json").Build();
    }
    
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddDbContext<ApplicationDbContext>(options => options
        .UseSqlServer(Configuration.GetConnectionString("Shop")));
        
        services.AddMvc();
        
        services.AddAntiforgery(o => o.HeaderName = "XSRF-TOKEN");
        services.AddMemoryCache();
        services.AddSession();
                     services.AddOptions();

    }
    public void Configure(IApplicationBuilder app)
    {
        app.UseRouting();
        app.UseEndpoints(endpoints =>
        {
            endpoints.MapControllers();
            endpoints.MapAreaControllerRoute(
                "admin",
                "admin",
                "Admin/{controller=Default}/{action=Index}/{id?}");
            endpoints.MapControllerRoute(
                "default", "{controller=Home}/{action=Index}/{id?}");
        });  
    }

我找到了答案問題是命名動作,我刪除了異步,問題就解決了!!! 很奇怪

 [HttpPost]
[AjaxOnly]
[ValidateAntiForgeryToken]
public async Task<ActionResult> CreateSpecialShow([FromForm]SpecialShowViewModel vm)
{
    return Json(new { msg = ok });
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM