我被困在这个问题上。我有两个控制器,UsersController和HomeController我试图从另一个控制器(HomeController)调用UsersController的控制器方法:
UsersController usersController = new UsersController();
但我收到此错误:在CTHRC.Roti.Web.UI.Controllers.UsersController'
中生成构造函数存根我不明白这个错误。
这是我的UsersController:
using System;
using System.IO;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Web;
using System.Web.Http;
using CTHRC.Roti.Domain.Api.Services;
using CTHRC.Roti.Domain.Model;
namespace CTHRC.Roti.Web.UI.Controllers
{
public class UsersController : ApiController
{
protected readonly UsersService UsersService;
public UsersController(UsersService usersService)
{
UsersService = usersService;
}
[HttpGet]
public dynamic Get(int UserId)
{
return UsersService.Get(UserId);
}
}
}
这是我的HomeController:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using WebMatrix.WebData;
namespace CTHRC.Roti.Web.UI.Controllers
{
public class HomeController : Controller
{
//
// GET: /Default/
public ActionResult Index()
{
if (!WebSecurity.IsAuthenticated)
{
Response.Redirect("~/account/login");
}
UsersController userController = new UsersController();
return View();
}
}
}
我该怎么做才能解决这个问题?任何帮助,将不胜感激。谢谢。我试图这样做的原因是因为我想要来自控制器方法的数据。
答案 0 :(得分:0)
您的UsersController
没有无参数构造函数,这是调用网站所期望的。
您可以添加以下内容:
public UsersController() {
}
否则,您必须在呼叫站点提供UsersService
作为参数。