外向小朋友 2021-10-25 17:30 采纳率: 66.7%
浏览 80
已结题

.net 5,使用路由,显示找到了多个接受所有给定参数类型的构造函数。应该只有一个适用的构造函数


 app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllerRoute(
                    name: "default",
                    pattern: "{controller=Menu}/{action=Index}/{id?}");
            });
//然后我的MenuController中只有一个Index的action

一运行,程序就会进入路由的部分,然后报错
InvalidOperationException: Multiple constructors accepting all given argument types have been found in type 'PesitcideWMS.Controllers.MenuController'. There should only be one applicable constructor.
Microsoft.Extensions.DependencyInjection.ActivatorUtilities.TryFindMatchingConstructor(Type instanceType, Type[] argumentTypes, ref ConstructorInfo matchingConstructor, ref Nullable[] parameterMap)

这是MenuController

using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using PesitcideWMS.Domain.Entity;
using PesitcideWMS.Models;
using PesitcideWMS.Utils;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Threading.Tasks;

namespace PesitcideWMS.Controllers
{
    [Authorize]
    public class MenuController : Controller
    {
        private readonly ILogger<MenuController> _logger;
        private readonly CoreDbContext _CoreDbContext;
        
        public MenuController(ILogger<MenuController> logger)
        {
            _logger = logger;
        }
        public MenuController(CoreDbContext CoreDbContext)
        {
            _CoreDbContext = CoreDbContext;
        }
        //public async Task<IActionResult> InitView()
        //{
        //    ViewBag.menu_tree = await _CoreDbContext.MenuView.ToListAsync();
        //    return View();
        //}
        public IActionResult Index()
        {
            ViewBag.shouye = "/Home/Index";

            return View();
        }
        [HttpPost]
        public ActionResult<string> GetLeftNavAsync()
        {
            List<MenuView> allValue = new List<MenuView>();
            allValue = _CoreDbContext.MenuView.ToList();
            List<TreeJsonModel> a = Tree.GetTreeJson(allValue);
            return JsonConvert.SerializeObject(a);
        }


        [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
        public IActionResult Error()
        {
            return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
        }
    }
}


  • 写回答

1条回答 默认 最新

  • Rena Ni 2021-10-26 09:58
    关注

    错误信息很明确提示你了你请求的MenuController里面有多个构造函数,只允许有一个构造函数。

        public class MenuController : Controller
        {
            private readonly ILogger<MenuController> _logger;
            private readonly CoreDbContext _CoreDbContext;
            
            public MenuController(ILogger<MenuController> logger,CoreDbContext CoreDbContext)
            {
                _logger = logger;
               _CoreDbContext = CoreDbContext;
            }
         }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月29日
  • 已采纳回答 10月26日
  • 修改了问题 10月26日
  • 创建了问题 10月25日

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。