我正在处理一个 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/