簡體   English   中英

錯誤:使用 Vue.js 在 ASP.NET Core 中請求失敗,狀態碼為 404

[英]Error: Request failed with status code 404 in ASP.NET Core with Vue.js

index.cshtmp頁面中只有一個按鈕和腳本。 在我的 main.Js 中,我有一個名為 getItems() 的方法用於檢索所有項目。 我為此使用了 Vue.js 和 Axios。 我在Admincontroller調用了getItems方法。這是一個 GET 請求。 但它給了我控制台錯誤Error: Request failed with status code 404 我在 Admin 控制器中添加了一個剎車點,但我的請求沒有進入控制器。 請幫我解決這個問題。謝謝

**index.cshtml**
<div id="app">

    <button v-on:click="getItems">Get Items</button>

</div>

@section scripts{
    <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
    <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
    <script src="~/js/Admin/main.js"></script>

}

主文件

var app = new Vue({
    el: '#app',
    data: {
        price: 0,
        showPrice:true,
        loading: false
    },
    methods: {
        getItems() {
            this.loading = true;
            axios.get('/Admin/Items')
                .then(res => {
                    console.log(res);
                })
                .catch(err =>{
                console.log(err);
                })
                .then(() => {
                    this.loading = false;
                })

        }

    }
});

管理控制器

using Microsoft.AspNetCore.Mvc;
using PracticalTest.Application.Admin;
using PracticalTest.Database;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace PracticalTest.UIs.Controllers
{
    [Route("[controller]")]
    public class AdminController : Controller
    {
        private ApplicationDbContext _ctx;
        public AdminController(ApplicationDbContext ctx)
        {
            _ctx = ctx;
        }

        [HttpGet("Items")]
        public IActionResult GetItems() =>Ok( new GetItems(_ctx).Do());

        [HttpPost("Items")]
        public IActionResult CreateItem(CreateItem.ItemViewModel vm) =>Ok( new CreateItem(_ctx).Do(vm));

        [HttpDelete("Items/{id}")] 
        public IActionResult DeleteItem(int id) =>Ok( new DeleteItem(_ctx).Do(id));

        [HttpPut("Items")]
        public IActionResult UpdateItem(UpdateItem.ItemViewModel vm) =>Ok( new UpdateItem(_ctx).Do(vm));
       
    }
}

我在 Admincontroller 中調用了 getItems 方法。這是一個 GET 請求。 但它給了我控制台錯誤錯誤:請求失敗,狀態代碼為 404。我在管理控制器中添加了一個制動點,但我的請求沒有進入控制器。

如果您在同一個項目中混合使用 Razor 頁面和 MVC(或 API) ,請確保您注冊了所需的服務,並添加了所需的中間件。

public void ConfigureServices(IServiceCollection services)
{
    services.AddRazorPages();
    services.AddControllers();

    //if mix MVC feature, need regiester this service
    //services.AddControllersWithViews();

    //...
    //other sevices you need
    //...
}

// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    //...
    //other required middleware(s) here
    //...

    app.UseRouting();

    //...

    app.UseEndpoints(endpoints =>
    {
        endpoints.MapRazorPages();

        endpoints.MapControllers();

        //endpoints.MapControllerRoute(
        //    name: "default",
        //    pattern: "{controller=Home}/{action=Index}/{id?}");
    });
} 

暫無
暫無

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

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