ASP.NET MVC 4从另一个控制器调用控制器方法
本文关键字:控制器 调用 方法 另一个 NET MVC ASP | 更新日期: 2023-09-27 18:10:22
我在这个问题上卡住了。我有两个控制器,UsersController和HomeController我试图从UsersController从另一个控制器(HomeController)调用一个控制器方法,通过这样做:
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();
}
}
}
我该怎么做才能解决这个问题?任何帮助都会很感激。谢谢。我尝试这样做的原因是因为我想要来自控制器方法的数据
您的UsersController
没有调用站点所期望的无参数构造函数。
你可以像这样添加:
public UsersController() {
}
否则,您必须在呼叫站点提供UsersService
作为参数。