Je cherche à créer un modèle d'éditeur pour Object.cshtml afin de modifier le comportement de la méthode Html.EditorForModel(). Je ne trouve aucun exemple de cela en utilisant Razor. J'ai vu this example en utilisant le moteur de vue MVC2 et WebForm mais je ne sais pas assez sur le rasoir pour le convertir. Même un exemple simple serait très utile.Création d'un modèle d'éditeur object.cshtml avec MVC et Razor
12
A
Répondre
21
Je vais juste faire le modèle d'affichage et laisser le reste comme un exercice pour le lecteur :)
@if (Model == null) {
<text>@ViewData.ModelMetadata.NullDisplayText</text>
} else if (ViewData.TemplateInfo.TemplateDepth > 1) {
<text>@ViewData.ModelMetadata.SimpleDisplayText</text>
} else {
<table cellpadding="0" cellspacing="0" border="0">
@foreach (var prop in ViewData.ModelMetadata.Properties.Where(pm => pm.ShowForDisplay && !ViewData.TemplateInfo.Visited(pm))) {
if (prop.HideSurroundingHtml) {
<text>@Html.Display(prop.PropertyName)</text>
} else {
<tr>
<td>
<div class="display-label" style="text-align: right;">
@prop.GetDisplayName()
</div>
</td>
<td>
<div class="display-field">
@Html.Display(prop.PropertyName)
</div>
</td>
</tr>
}
}
</table>
}
0
Cela semble fonctionner pour éditeur de modèle pour bootstrap, s'il vous plaît laissez-moi savoir de toute amélioration
Object.cshtml
@if (Model == null)
{
<text>@ViewData.ModelMetadata.NullDisplayText</text>
}
else if (ViewData.TemplateInfo.TemplateDepth > 1)
{
<text>@ViewData.ModelMetadata.SimpleDisplayText</text>
}
else
{
foreach (var prop in ViewData.ModelMetadata.Properties.Where(pm => pm.ShowForDisplay && !ViewData.TemplateInfo.Visited(pm)))
{
if (prop.HideSurroundingHtml)
{
<text>@Html.Editor(prop.PropertyName)</text>
}
else
{
<div class="form-group">
@Html.Label(prop.PropertyName, new { @class = "control-label col-md-2", @style = "text-align:right;" })
<div class="col-md-10">
@Html.Editor(prop.PropertyName, null, new { @class = "form-control " })
@Html.ValidationMessage(prop.PropertyName, "", new { @class = "text-danger" })
</div>
</div>
}
}
}
Questions connexes
- 1. MVC 3.0 Directive Assemblée Razor
- 2. Comment passer un modèle à la "masterpage" MVC 3 Razor
- 3. Modifier les assistants de modèle MasterPage avec Razor
- 4. Webmatrix, Razor et Sessions
- 5. ASP.NET MVC 3 Performance Razor
- 6. ASP.NET MVC Razor Titre concaténation
- 7. Problème de commutation de contexte MVC Razor
- 8. Asp.net MVC 3 RC - Razor ValidationMessageFor CustomMessage et ClientSideValidation problème
- 9. BreadCrumb trail MVC3 et Razor
- 10. Commandes Mvc2 et Razor
- 11. Création d'urls avec asp.net MVC et RouteUrl
- 12. MVC 3 & Razor avec la base de données existante
- 13. Vues localisées avec Razor
- 14. modèle MVC et $ _POST
- 15. PHP: MVC et le modèle
- 16. Modèle d'éditeur ASP.NET MVC DropDown
- 17. Différence dans l'authentification par formulaires entre Razor Preview et Razor Beta?
- 18. Razor View Engine et jQuery
- 19. Problème de modèle null MVC
- 20. Problème d'utilisation Razor après la migration MVC 2.0 MVC 3.0 RC
- 21. Retour Razor vue partielle en utilisant JSON (ASP MVC 3)
- 22. Hébergement du site ASP.NET MVC 3 Razor Engine
- 23. MVC Razor 3 RC syntaxe: Bug ou erreur de l'utilisateur?
- 24. Modèle MVC + modèle DDD
- 25. MVC modèle/héritage modèle
- 26. Recherche du modèle de périphérique et création
- 27. Asp.net MVC Razor - javascript personnalisé à l'intérieur si le bloc
- 28. ASP.NET MVC Razor - Linkshare - Augmenter la taille de l'image
- 29. Création d'un modèle associé supplémentaire avec Devise
- 30. Aide pour Codeigniter et modèle de modèle MVC
Merci pour cela, mais quand je coller ce code dans mon object.cshtml je reçois « erreur CS1024: préprocesseur dire ctive attendu " – Craig
Doh, votre code est correct. J'ai accidentellement eu # Html.EditorForModel() plutôt que @ Html.EditorForModel(). Au moins, votre code n'est pas perdu et sera vu par de nombreux nouveaux utilisateurs de Razor à l'avenir. – Craig
Je n'arrive même pas à exécuter Object.cshtml. Je l'ai placé dans Views/Shared/EditorTemplates/Object.cshtml Des idées? –