Je veux avoir deux modèles dans une seule vue. La page contient les deux LoginViewModel
et RegisterViewModel
.
par exemple
public class LoginViewModel
{
public string Email { get; set; }
public string Password { get; set; }
}
public class RegisterViewModel
{
public string Name { get; set; }
public string Email { get; set; }
public string Password { get; set; }
}
Dois-je créer un autre ViewModel qui contient ces deux ViewModels ?
public BigViewModel
{
public LoginViewModel LoginViewModel{get; set;}
public RegisterViewModel RegisterViewModel {get; set;}
}
J'ai besoin que les attributs de validation soient reportés dans la vue. C'est pourquoi j'ai besoin des ViewModels.
N'y a-t-il pas une autre façon de procéder (sans l'option BigViewModel
) :
@model ViewModel.RegisterViewModel
@using (Html.BeginForm("Login", "Auth", FormMethod.Post))
{
@Html.TextBoxFor(model => model.Name)
@Html.TextBoxFor(model => model.Email)
@Html.PasswordFor(model => model.Password)
}
@model ViewModel.LoginViewModel
@using (Html.BeginForm("Login", "Auth", FormMethod.Post))
{
@Html.TextBoxFor(model => model.Email)
@Html.PasswordFor(model => model.Password)
}
4 votes
Voir ça : codeproject.com/Articles/687061/
1 votes
@saeed serpooshan, merci beaucoup pour le lien avec les différentes options, après 4 ans vous avez posté un commentaire et il m'a aidé, je viens d'utiliser
ViewBag
avec for each dans la vue, cela fonctionne très bien0 votes
@stom Juste pour info : l'auteur du message reçoit toujours une notification, mais si vous voulez notifier quelqu'un d'autre, vous devez mettre
@
devant leur nom, comme je l'ai fait ici.