2016-04-13 6 views
1

Ich habe einige HTML, die in verschiedenen Teilen der Ansicht enthalten sein muss.MVC Ansicht verhindern, HTML zu wiederholen

<img class="class" 
    data-Person-id="@Model.PersonId.ToString()" 
    onClick="functionCall(this)" 
    src="~/Images/SomeImage.gif" /> 

Da die Frage stellt die exakt gleichen Code muss in den verschiedenen Teilen der Ansicht enthalten sein und sogar in verschiedenen Partial Views, die gleich model enthält. Obwohl es nicht das größte Problem der Welt ist, mag ich es nicht, Code zu wiederholen, den OO begrenzt.

Sie fragen sich, ob es eine Technik oder Methode gibt, die das Kopieren und Einfügen des Codes verhindert?

(ich habe alles im Modell und die Steuerung so dass ich nicht diesen Code zu ändern werden möchte, aber wenn es geschehen muß, ich bin glücklich, es zu ändern)

+1

akzeptiert Man könnte diesen hTML in seiner eigenen gemeinsamen Teilansicht hinzufügen, dann rufen Sie einfach @ Html.Partial ("_ Image ", Model.PersonId) oder erstellen Sie einen HTML-Helper –

+0

@AshleyMedway danke, die Teilansicht Ansatz ist der richtige Weg. Wenn Sie es zu einer Antwort machen, werde ich es markieren. – user3428422

Antwort

0

Sie könnten Ihren HTML bewegen eine gemeinsame Teilansicht, die Ihr Modell

@model MyModel 

<img class="class" 
    data-Person-id="@Model.PersonId.ToString()" 
    onClick="functionCall(this)" 
    src="~/Images/SomeImage.gif" /> 

dann rufen Sie die Teilansicht wie diese @Html.Partial("_ImageView", Model)