2012-04-10 8 views
0

Ich arbeite an einer mobilen Website in ASP.NET MVC3. Ich habe eine Seite, wo ich Suchleiste in meiner Kopfzeile habe. Diese Kopfzeile stammt von meiner Layout-Seite, die allen anderen Ansichten gemein ist. Und innerhalb meiner spezifischen Seite habe ich seitenspezifische Inhalte (Formulare).Zwei Formulare (eins im Layout und eins in Page) Wie man in asp.net handhabt mvc3

enter image description here

Für meine Customer/Add Aktion, kehre ich die Add Ansicht von Customer, die stark an meine CustomerViewModel eingegeben wird. Ich werde ein Formular-Tag in meiner Add-Ansicht haben, das an HttpPostAdd Aktionsmethode gesendet wird, wenn Formular gesendet wird. Das ist gut. Meine Frage ist, wie werde ich den Inhalt der Suchbox behandeln? Ich glaube, dass nur eine Form in der Seite erlaubt ist. Wenn ich eine SearchViewModel habe, die zu meiner Suchansicht gebunden ist (teilweise), wird es 2 Formen in meiner Seite sein. Also kann ich das nicht tun.

Ich kann den Suchteil behandeln, indem ich den Inhalt in Java-Skript lese und eine andere Aktion aufruft, um Suchergebnisse zu erhalten. Ist das der einzige Weg, das zu tun? Ich mache mir Sorgen um die Geräte, auf denen Java Script deaktiviert ist. Was soll ich machen ? Bitte beachten Sie:

Antwort

1

Nein. Sie können mehr als ein Formular auf der Seite haben. In der Tat, hier sollten Sie. Die Seite "Kunde hinzufügen" sollte an 1 Aktionsmethode gesendet werden, Ihr Suchformular sollte jedoch an eine andere Aktionsmethode gesendet werden.

Wenn Sie mit Webforms vertraut sind, können Sie mit diesem Framework nur ein Formular auf der Seite erstellen, aber nicht, weil HTML dies erfordert. Webforms erfordert dies, da nur so das gesamte Framework alle Daten von verschiedenen Serversteuerelementen über POST-Anforderungen hinweg (mit ViewState) übertragen kann. Webforms war in der Vergangenheit nicht sehr HTML- oder HTTP-freundlich.

Sie können einfach keine Formulare in anderen Formen in HTML verschachtelt haben, aber es ist völlig legal (und in MVC empfohlen), mehr als ein Formular auf einer Seite zu haben.

Wie für AJAX, ich würde keine Sorge über Geräte, die Javascript nicht aktiviert haben. Es gibt nur 6 oder 7 Leute auf dem Planeten, die kein Javascript auf ihren Webgeräten haben, und wenn jemand JavaScript deaktiviert, werden sie 99% des restlichen Webs sowieso nicht erleben können.

+0

Dies verdient eine Verbesserung. – Happy

Verwandte Themen