Je suis bloqué sur ce problème. J'ai deux contrôleurs, UtilisateursController et HomeController Je suis en train d'appeler une méthode de commande à partir UsersController d'un autre contrôleur (HomeController) en faisant ceci:ASP.NET MVC 4 appeler une méthode de contrôleur à partir d'un autre contrôleur
UsersController usersController = new UsersController();
mais je reçois cette erreur: Générer stub constructeur dans « CTHRC.Roti. Web.UI.Controllers.UsersController '
Je ne comprends pas cette erreur.
Voici mon 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);
}
}
}
Voici mon 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();
}
}
}
Que dois-je faire pour résoudre ce problème? Toute aide serait appréciée. Merci. La raison pour laquelle j'essaye de faire ceci est parce que je veux les données de la méthode de contrôleur.
Pourquoi avez-vous besoin d'instancier UserController? Vous pouvez utiliser 'RedirectToAction (" ActionName "," ControllerName ")' si vous essayez d'y envoyer l'utilisateur. –
Si vous appelez une méthode d'un contrôleur à un autre, je pense que vous devriez repenser votre conception. Les contrôleurs ont beaucoup de frais généraux et de travail, et il n'est pas nécessaire de reproduire cela. Retirez le code commun que vous souhaitez utiliser par les deux contrôleurs et déplacez-le dans une zone commune, telle qu'une classe d'assistance. –
En outre, votre code n'utilise même pas le contrôleur que vous lancez. Votre exemple est incomplet? –