J'ai une méthode SendMail dans le contrôleur MVC. Cette méthode appelle une autre méthode ValidateLogin. Il s'agit de la signature de la connexion de validation:
private ActionResult ValidateLogin(Models.ResetPassword model)
Lorsque j'appelle ValidateLogin à partir de SendMail, cette exception apparaît parce que le contrôleur essaie de rechercher une vue SendMail, mais je veux charger la vue ResetPassword:
Global Error - The view 'SendMail' or its master was not found or no view engine supports the searched locations. The following locations were searched: ...
Voici le code du SendMail:
public ActionResult SendMail(string login)
{
return ValidateLogin(login);
}
Comment puis-je remplacer la vue sur la déclaration de retour?
Merci d'avance
enfin, c'était la solution
return View("ResetPassword", new ResetPassword
{
fields= fields
});
private ActionResult SendMail(string login)
{
return View("~/Views/SpecificView.cshtml")
}
Vous pouvez pointer directement vers une vue spécifique en pointant explicitement leur emplacement.
La méthode View
a une surcharge qui renvoie une chaîne à un viewName
. Parfois, vous voulez passer un string
comme modèle et le framework asp.net le confond en essayant de trouver une vue avec la valeur string
. Essayez quelque chose comme ceci:
public ActionResult SendMail(string login)
{
this.Model = login; // set the model
return View("ValidateLogin"); // reponse the ValidateLogin view
}
Vous pouvez renvoyer la vue par un nom comme celui-ci
return View("viewnamehere");