Problème retour vue spécifique en asp.net MVC3
-
25-09-2019 - |
Question
J'ai une structure de fichier de vue comme:
Views
Company
Department
Employee
ManageEmployee.cshtml
et le contrôleur est
public class EmployeeController : Controller
{
public ActionResult Index(int dptId)
{
var loadedEmp = getEmpOf(dptId);
return View("Company/Employee/ManageEmployee", loadedEmp);
}
}
Mais le contrôleur me donne une erreur -. Dire qu'il ne peut pas trouver les view.These sont les chemins qu'il recherche
~/Views/Employee/Company/Employee/ManageEmployees.aspx
~/Views/Employee/Company/Employee/ManageEmployees.ascx
~/Views/Shared/Company/Employee/ManageEmployees.aspx
~/Views/Shared/Company/Employee/ManageEmployee.ascx
~/Views/Employee/Company/Employee/ManageEmployee.cshtml
~/Views/Employee/Company/Employee/ManageEmployee.vbhtml
~/Views/Shared/Company/Employee/ManageEmployee.cshtml
~/Views/Shared/Company/Employee/ManageEmployee.vbhtml
En gros, si je suis en mesure d'éliminer le employé section , le moteur trouvera.
~ / Vues / employé /Company/Employee/ManageEmployee.cshtml à cette
~ / Vues / Société / employé / ManageEmployee.cshtml
Les idées sur la façon d'y parvenir.
Merci.
La solution
Vous devez suivre la convention de CVM ControllerNameController pour votre contrôleur et la structure de votre vue de ControllerName p>
Si vous voulez un contrôle total sur votre structure, vous aurez besoin de passer à un cadre différent, comme FubuMVC .
Autres conseils
Avez-vous essayé:
return View("/Company/Employee/ManageEmployee", loadedEmp);
Il semble que le moteur tente de retourner la vue par rapport à votre position actuelle dans le site plutôt que de la racine du site.
Voir doit être renvoyé du contrôleur de la manière suivante (pour la vue spécifique):
return View("ManageEmployee", loadedEmp);
Dans MVC, le contrôleur sera automatiquement route vers le nom de la vue que vous avez fourni.
loadedEmp
devrait être l'objet que vous passez à la vue.
Si vous voulez que votre propre convention d'organiser les structures de dossiers de vues, il serait préférable de brancher votre propre moteur de vue.