【问题标题】:'Route' is an ambiguous reference between 'Microsoft.AspNetCore.Components.RouteAttribute' and 'Microsoft.AspNetCore.Mvc.RouteAttribute''Route' 是 'Microsoft.AspNetCore.Components.RouteAttribute' 和 'Microsoft.AspNetCore.Mvc.RouteAttribute' 之间的模糊引用
【发布时间】:2021-04-09 21:23:00
【问题描述】:

我正在使用属性路由。我需要两个程序集参考。我试过了,但没有为我工作。有谁知道如何解决这一问题?这是我的控制器代码: 命名空间

using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Task1CRUD.Repository;
using Task1CRUD.Model;

namespace Task1CRUD.Controllers
{

    [Route("api/[Controller]")]
    [ApiController]
    public class CustomerController:Controller
    {
            private readonly ICustomerRepository _customerRep;
            public CustomerController(ICustomerRepository customerRepository)
            {
                _customerRep = customerRepository;
            }

            // GET api/values
            [HttpGet("")]
            public async Task<List<Customer>> GetCustomers()
            {
                return await _customerRep.GetCustomers();
            }

    }
}

【问题讨论】:

    标签: .net asp.net-core .net-core routes


    【解决方案1】:

    您可以像这样直接在 RouteAttribute 上指定完整的类名:

    [Microsoft.AspNetCore.Mvc.Route("api/[Controller]")]
    [ApiController]
    public class CustomerController:Controller
    {
            private readonly ICustomerRepository _customerRep;
            public CustomerController(ICustomerRepository customerRepository)
            {
                _customerRep = customerRepository;
            }
    
            // GET api/values
            [HttpGet("")]
            public async Task<List<Customer>> GetCustomers()
            {
                return await _customerRep.GetCustomers();
            }
    
    }
    

    【讨论】:

    • 我知道如何给命名空间起别名。现在在 2021 年用于 AspNet Core 5.0 的“那个”是哪一个?选择是“System.Web.Http.Route”、“Microsoft.AspNetCore.Components.Route”还是“Microsoft.AspNetCore.Components.Route”?
    【解决方案2】:

    如果您需要使用来自AspNetCore.Mvcusing RouteAttribute = Microsoft.AspNetCore.Components.RouteAttribute; 的属性,只需添加using RouteAttribute = Microsoft.AspNetCore.Mvc.RouteAttribute; - 如果来自AspNetCore.Components

    我建议你下载 ReSharper。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-12
      • 2022-06-28
      相关资源
      最近更新 更多