我被困在這個問題上。我有兩個控制器,UsersController和HomeController中我試圖做這從另一個控制器(HomeController中)調用從UsersController控制器方法:ASP.NET MVC 4從另一個控制器調用控制器方法
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();
}
}
}
我有什麼做的,解決這一問題?任何幫助,將不勝感激。謝謝。我試圖這樣做的原因是因爲我想要控制器方法中的數據。
爲什麼你需要實例化UserController?如果您嘗試在此處發送用戶,則可以使用'RedirectToAction(「ActionName」,「ControllerName」)'。 –
如果你正在從一個控制器調用另一個控制器的方法,我認爲你應該重新考慮你的設計。控制器有很多開銷和設置工作,並且沒有必要重複它。拉出兩個控制器要使用的通用代碼,並將其移入公共區域,例如助手類。 –
此外,您的代碼甚至不使用您正在啓動的控制器。你的例子不完整嗎? –