Ich bin mir bewusst, dass Sie Unterstreichungen für Datenattribute mit Bindestrichen ("Datenbindung" anstelle von "Datenbindung", im Objekt) verwenden, und sie automatisch durch Bindestriche ersetzt werden. Aber ich bin auf das Problem gestoßen, wo Sie diesen Unterstrich "hacken" nicht machen können, wenn das Attribut mit "name" endet. So habe ich diese beiden versucht, aber weder Arbeit:Kann das Datenattribut, das auf "name" endet, nicht verwenden?
@Html.TextBoxFor(model => model.Street, new { data_encrypted_name = "street" })
@Html.TextBoxFor(model => model.Street, new { @data_encrypted_name = "street" })
Wenn ich die HTML-Ansicht, die erzeugt wird, für beide Fälle oben, es erzeugt:
<input data-encrypted- id="ViewModel_Street" name="ViewModel.Street" type="text" value="" />
Zuerst dachte ich diese Macht haben etwas mit mehreren Unterstrichen/Bindestriche zu tun, aber ich versuchte, zwei weitere Testfälle, um zu sehen, was passieren würde, und sie beide funktionierte gut:
@Html.TextBoxFor(model => model.Street, new { data_encrypted_namme = "street" })
@Html.TextBoxFor(model => model.Street, new { data_name_encrypted = "street" })
Also das Problem auf jeden Fall mit „name zusammenhängt "Am Ende des Attributs.
Mache ich etwas falsch oder etwas fehlt, oder ist das ein Fehler in wie .NET die Attribute konvertiert?
(Zur Klarstellung verwenden wir Braintree Zahlungen, und sie erfordern die Verwendung von „Datenschlüsselten-name“ -Attribut auf bestimmte Eingaben, so dass wir nicht nur einen anderen Attributnamen wählen.)
Da 'name' ein gültiges HTML-Attribut ist, könnte dies Ihre Probleme verursachen ..? – tier1
Hmm, naja, im Sinne dieser Idee habe ich data_encrypted_id und data_encrypted_class ausprobiert, aber beide haben wie erwartet funktioniert. Es scheint also am Ende immer noch direkt mit "Name" zu tun zu haben. Danke für den Gedanken! –
Nur als ein FYI, ich bin nicht in der Lage, dieses Verhalten, VS2012, MVC4, Cshtml-Datei auf Html.TextboxFor Helfer zu bestätigen. @ Html.TextBoxFor (x => x.TrapNumber, neu {data_encrypted_name = "Test"}) rendert sich passend für mich.. Auch getestet auf TextArea ohne Problem. Ich weiß, dass dies nicht Ihr Verhalten anspricht, aber ich wollte einen Einblick geben, dass es für mich kein Framework-Fehler ist ... –
Tommy