J'ai le viewmodel suivant dans mon projet mvc.@ html.validationmessagefor ne montre pas le message d'erreur
public class AddGISViewModel
{
public myproject.Models.DomainModels.GIS gis { get; set; }
public IEnumerable<myproject.Models.DomainModels.Companies> Companies { get; set; }
public long CompanyID { get; set; }
}
J'ai créé une vue que cette
@model myproject.ViewModels.GIS.AddGISViewModel
@using (Ajax.BeginForm("Create", "GIS", new AjaxOptions { HttpMethod = "Post", Url = "/GIS/Create" }))
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.Label("company", new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownListFor(model => model.CompanyID, new SelectList(Model.Companies, "CompanyID", "Name"), "select company please ", htmlAttributes: new {@class = "form-control" })
@Html.ValidationMessageFor(model => model.CompanyID)
</div>
</div>
aussi j'ai créé à la suite des métadonnées
[Required(ErrorMessage = "you should select company")]
[DisplayName("company")]
[Display(Name = "company")]
public long CompanyID { get; set; }
Quand je lance mon projet @validationmessagefor show 'CompanyID est un champ obligatoire' non 'vous devriez sélectionner l'entreprise' que je définis dans les métadonnées. Comment puis-je résoudre ce problème?
Appliquez ces attributs à la classe 'AddGISViewModel' –
merci beaucoup, j'applique ces attributs à addGISViewModel et cela fonctionne. Y a-t-il un moyen au lieu de cela? –
Pourquoi ne voudriez-vous pas le faire de la bonne façon? (vous avez créé un modèle de vue qui devrait représenter exactement ce dont vous avez besoin dans la vue, y compris les attributs d'affichage et de validation) –