public static string TextBox(this HtmlHelper html, string value, string labelText, string textBoxId, object textBoxHtmlAttributes, object labelHtmlAttributes){}
Dies würde den ID-Wert akzeptieren, den die Textbox haben sollte und auf den das Etikett verweisen sollte. Wenn der Consumer jetzt die Eigenschaft "id" nicht in textBoxHtmlAttributes enthält, erstellt die Methode eine falsche Bezeichnung.
Ich kann durch Reflexion überprüfen, wenn dieses Attribut im labelHtmlAttributes-Objekt hinzugefügt wird. Wenn ja, möchte ich es hinzufügen oder ein neues anonymes Objekt erstellen, das hinzugefügt wurde. Aber weil ich keinen neuen anonymen Typ erstellen kann, indem ich die alten Attribute durchlaufe und mein eigenes "id" -Attribut hinzufüge, stehe ich irgendwie fest.
Ein Container mit einer stark typisierten ID-Eigenschaft und einer anonymen typisierten "attributes" -Eigenschaft würde Code-Umschreibungen erfordern, die nicht die Anforderung "Id-Feld hinzufügen" erfüllen.
Hoffe, diese Antwort ist verständlich. Es ist das Ende des Tages, kann meine Gehirne in Linie nicht mehr bekommen ..
Funktioniert wie ein Charme, dies sollte die akzeptierte Antwort sein! BTW: Wenn Sie die Objektüberladungen von ActionLink() bisher verwenden, müssen Sie htmlAttributes mit HtmlHelper.AnonymousObjectToHtmlAttributes (htmlAttributes) umbrechen, um die korrekte Überladung aufzurufen! –