Formular Submit-button in MVC3/Razor funktioniert nicht im Internet Explorer
Ich habe ein Formular geschrieben ASP.NET MVC3/Razor. Die Formular-post tadellos funktioniert gut in Firefox und Chrome, aber für einige Grund Sie in Internet Explorer auf den "Senden" - button nicht reagiert.
Klar zu sein, wenn auf client-Seite-Feld-Validierungen fehl, so ist der Prüfmeldungen angezeigt, wie erwartet. Aber das Modell der view implementiert IValidatableObject
und überschreibt Validate()
, und wenn die Daten sollte dazu führen, dass eine Verletzung der Gültigkeitsregeln, wird keine Fehlermeldung angezeigt. Dies führt mich zu glauben, dass kein postback-Auftritt überhaupt.
Jede Idee, warum der IE würde sich genau so Verhalten?
EDIT: - Code-snippet sieht ziemlich Lauf von der Mühle, Nein?):
@model MyModel
...
@using (Html.BeginForm("SaveMyForm", "Home")) {
<fieldset>
...
<input type="submit" value="Save" class="submit" />
</fieldset>
}
Legen Sie einen Haltepunkt in der
validate
um zu sehen, ob er getroffen wird oder nicht...Und welche version des IE?
Ich habe einen breakpoint setzen, und es ist nicht getroffen zu werden.
ja, sieht nicht allzu kompliziert aus, ist es eine Validierung Los? Clientseitige DOM-manipulation (jQuery?) wenn Sie die generierten HTML -, gibt es keine überlappenden Formen? basic sanity-checks
InformationsquelleAutor Shaul Behr | 2012-01-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verfolgt es unten durch auskommentieren Teile der Seite code und sehen, was musste auskommentiert werden, bevor das Formular funktionieren würde.
Die Antwort war ein hidden-Feld
char
, die nicht initialisiert wurde, und hatte noch seinen ursprünglichen Wert von(char)0
. Der html-Quelltext generiert wurde:Ich im Vergleich mit Chrome und dort die html-Quelle war die gleiche, außer für:
Offensichtlich ist der "char null" - Wert. Anscheinend IE flippt aus, wenn er char 0 und schneidet nur es auf eine leere, und dann die client-seitige Validierung Regel, die erfordert, dass
MyChar
haben einen Wert ein postback verursacht Fehler, mit keinen Platz, um die Anzeige der Fehlermeldung, da es ein verstecktes Feld sowieso!(Parenthetic Hinweis: ich habe nicht dekoriert diesem Bereich überall mit den
[Required]
Attribut, also ich habe keine Ahnung warum der html-Code wird die Erstellung einer "erforderlich" validator - vor allem zu sehen, wie es ein hidden-Feld!)data-val="true"
gerendert wird.InformationsquelleAutor Shaul Behr
Wenn Sie ein benutzerdefiniertes Feld im Modell wird in
@Html.HiddenFor
aber nicht in der Klasse definiert ist, wird es gerendert Seite, aber reichen/post wird nicht funktionieren.Überprüfen Sie alle Modell-Eigenschaften und stellen Sie sicher, dass das so definierte Modell-Klasse.
InformationsquelleAutor Mayank
Stellen Sie sicher, dass die Skripte am Ende
InformationsquelleAutor Michael W Ritchie