ASP.NET MVC 4从另一个控制器调用控制器方法

时间:2014-06-26 00:59:47

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

我被困在这个问题上。我有两个控制器,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();

        }

    }
}

我该怎么做才能解决这个问题?任何帮助,将不胜感激。谢谢。我试图这样做的原因是因为我想要来自控制器方法的数据。

1 个答案:

答案 0 :(得分:0)

您的UsersController没有无参数构造函数,这是调用网站所期望的。

您可以添加以下内容:

public UsersController() {
}

否则,您必须在呼叫站点提供UsersService作为参数。