2011-01-05 7 views

Antwort

12

Ein sauberer Weg, es zu tun

ist
<%=Html.HiddenFor(o => o[i].HobbyId, new {id = " _ "+i+"__HobbyId"}) %> 

aber davon abgesehen, dass Ihre bestehende Methode in Ordnung ist. Wenn Sie wirklich eine einfache Syntax wollen, können Sie eine Erweiterungsmethode erstellen, die HiddenFor aufruft, aber das scheint sich kaum zu lohnen.

1

Ich neige dazu, etwas zu tun, wie zum Beispiel:

@Html.Hidden(
    string.Format("{0}ObjectId", Model.BindingPrefix), 
    Model.ObjectId 
) 

Welche dies erzeugt:

<input id="customerModel_ObjectId" name="customerModel.ObjectId" type="hidden" value="3a44d3eb-58ec-4229-9fe0-e420d9855bb7"> 

Die ID und Namenskonvention ist konsistent und produziert stabile ID und Name Werte, die sich nicht ändern. Das funktioniert perfekt für mich.

So Ihr Beispiel zu meinem Format zu konvertieren:

@Html.Hidden(
    string.Format(" _ {0}__{1}", i, HobbyId), 
    HobbyId, 
) 

... das sollten Sie bekommen, was Sie auch wollen. Hoffentlich habe ich beim Schreiben keine Syntaxfehler eingefügt. :)

+0

... natürlich verwendet dies Razor-Syntax von MVC3 RC2, aber Sie bekommen die Idee und können dies leicht in Aspx-Syntax übersetzen. – slimflem

Verwandte Themen