2017-10-12 2 views
0

Mon objectif est de créer de nombreux points de vue similaires qui ne différeront que par la liste des champs qu'ils présentent. Par exemple, beaucoup Créer vues pour différents modèles et différents ensembles de champs. Ce qui suit est un extrait d'une page Create.cshtml échafaudée:Point de maintenance unique pour les parties de page Razor qui recouvrent les attributs de modèle

<div class="form-group"> 
    @Html.LabelFor(model => model.NameText, htmlAttributes: new { @class = "control-label col-md-2" }) 
    <div class="col-md-10"> 
     @Html.EditorFor(model => model.NameText, new { htmlAttributes = new { @class = "form-control" } }) 
     @Html.ValidationMessageFor(model => model.NameText, "", new { @class = "text-danger" }) 
    </div> 
</div> 

<div class="form-group"> 
    @Html.LabelFor(model => model.NameDefinition, htmlAttributes: new { @class = "control-label col-md-2" }) 
    <div class="col-md-10"> 
     @Html.EditorFor(model => model.NameDefinition, new { htmlAttributes = new { @class = "form-control" } }) 
     @Html.ValidationMessageFor(model => model.NameDefinition, "", new { @class = "text-danger" }) 
    </div> 
</div> 

<div class ="form-group"> 
    @Html.LabelFor(model => model.NameComment, htmlAttributes: new { @class = "control-label col-md-2" }) 
    <div class="col-md-10"> 
     @Html.EditorFor(model => model.NameComment, new { htmlAttributes = new { @class = "form-control" } }) 
     @Html.ValidationMessageFor(model => model.NameComment, "", new { @class = "text-danger" }) 
    </div> 
</div> 

Ma compréhension est que des vues partielles peuvent ajouter ci-dessus, en dessous et parmi les <div class="form-group"> . . . </div> blocs de code. Mais je ne suis pas conscient de sa capacité à consommer une référence à un attribut de modèle (par exemple, NameText), puis de l'envelopper avec le bloc de code.

D'après ce que je crois savoir, la directive @Helper a été supprimée de Razor (MVC 6) et aucun remplacement n'a été effectué.

je l'ai déjà placé deux la partie de code qui précède l'extrait ci-dessus et la partie du code qui le suit dans une seule vue partielle. Avec un petit truc, les deux parties du code sont fusionnées autour de l'extrait ci-dessus, puis tout est envoyé au navigateur. Mais j'ai besoin de plus que ça. Comment puis-je éviter la répétition de code dans l'extrait ci-dessus?

Ce que je voudrais avoir:

  • De nombreuses vues similaires qui ne se distinguent que dans la liste des champs
  • frappe fort
  • Un seul point de maintenance du code qui est commun pour beaucoup de vues

Et en note: comment devrais-je chercher pour trouver moi-même la réponse?

Répondre