c# - 尝试创建 X 类型的 Controller 时出错。请确保 Controller 具有无参数构造函数

标签 c# asp.net asp.net-mvc

我正在处理一个 asp.net mvc 项目,我在其中创建了一个带有一些下拉列表的局部 View 。这些都是用 ajax 填充的,应该用作过滤器。 (我想这与我的问题不太相关,但无论如何很高兴知道)。

尝试调用分部 View 时出现问题,提示如下: 尝试创建“Project.Name.Web.Controllers.PlanFilterController”类型的 Controller 时出错。确保 Controller 具有无参数公共(public)构造函数。

但是,我的 Controller 似乎有一个无参数的构造函数;

public class PlanFilterController : BaseController
    {
        public PlanFilterControllerViewModel Model { get; set; }
        public List<DropDownItem> Items { get; set; }

        public List<ProjectContract> AllProjects { get; set; }
        public List<CustomerContract> AllCustomers { get; set; }
        public List<UnitContract> AllUnits { get; set; }

        private ProjectServiceClient ProjectClient { get; set; }
        private CustomerServiceClient CustomerClient { get; set; }

        public PlanFilterController()
        {
            AllProjects = new List<ProjectContract>();
            AllCustomers = new List<CustomerContract>();
            AllUnits = new List<UnitContract>();

            ProjectClient = new ProjectServiceClient();
            CustomerClient = new CustomerServiceClient();

            AllProjects = ProjectClient.GetProjects().ToList();
            AllCustomers = CustomerClient.GetCustomers().ToList();
            AllUnits = UnitClient.GetUnits(true, "", false).ToList();
        }

        // GET: /PlanFilter/
        [ChildActionOnly]
        public ActionResult FilterControl()
        {

            return PartialView();
        }

        // Populate dropdowns
        public JsonResult GetCascadeCustomers()
        {
            Items = new List<DropDownItem>();

            foreach (var customer in AllCustomers)
            {
                Items.Add(new DropDownItem
                {
                    ItemId = customer.Id,
                    ItemName = customer.Name
                });
            }

            return Json(Items, JsonRequestBehavior.AllowGet);
        }

        public JsonResult GetCascadeProjects()
        {
            Items = new List<DropDownItem>();

            foreach (var project in AllProjects)
            {
                Items.Add(new DropDownItem
                {
                    ItemId = project.Id,
                    ItemName = project.Name
                });
            }

            return Json(Items, JsonRequestBehavior.AllowGet);
        }

        public JsonResult GetCascadeUnits()
        {
            Items = new List<DropDownItem>();

            foreach (var unit in AllUnits)
            {
                Items.Add(new DropDownItem
                {
                    ItemId = unit.Id,
                    ItemName = unit.Name
                });
            }

            return Json(Items, JsonRequestBehavior.AllowGet);
        }
    }

我在这里错过了什么?另外,如果有人可以解释为什么会这样,那就太好了:)

最佳答案

正如评论中提到的,当我添加我的服务引用时发生了一些事情,一些代码没有自动生成。这再次导致提到的异常。

关于c# - 尝试创建 X 类型的 Controller 时出错。请确保 Controller 具有无参数构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23624701/

相关文章:

c# - 有没有一种方法可以在 C#/LINQ 中产生、发出或以其他方式实现以前为空的数组?

c# - 给定 C# 中的基类,如何实现该类?

c# - 我需要使用 2 个不同的 SoapServices 但我当时只能访问 1 个,为什么?

asp.net-mvc - Internet Explorer (IE) 8 中的 Telerik asp.net mvc datepicker "Invalid argument"

javascript - 无法重置所选选项值

c# - 为什么 "ORDER BY"会破坏我的查询?

c# - 无法跨 AppDomains 传递 GCHandle : solution without delegates?

c# - 实体对象不能被 IEntityChangeTracker 的多个实例引用无法修复

c# - WebAPI 无法解析 multipart/form-data post

c# - 从代码隐藏更改母版页上的 DIV 标签高度