2 Stimmen

Alternative zur Verwendung des OnLoad-Ereignisses in einer ASP.Net MVC-Ansicht?

Ich erstelle eine einfache Testanwendung, damit ich sehen kann, wie ASP.Net MVC für das funktioniert, womit wir täglich zu tun haben. Wir verwenden Steuerelemente von Drittanbietern aus Developer's Express, und wir werden sie auch weiterhin verwenden. Wenn sie absolut nicht in ASP.Net MVC funktionieren, dann werden wir ASP.Net MVC nicht verwenden.

Aber irgendjemand hat einen Weg gefunden, wie es funktionieren kann. Er musste nur etwas Code in den Code dahinter einfügen. Er musste das OnLoad-Ereignis überschreiben und einfach nur grid.DataSource = model und grid.DataBind() setzen und es funktioniert wie erwartet.

In der ASP.Net MVC RC, Code hinter Dateien wurden eliminiert. Ich weiß, ich könnte sie wieder einfügen... Da jedoch die Leute im Allgemeinen sagen, dass Code hinter Dateien böse sind, wie könnten Sie dies sonst erreichen?

13voto

Peter J Punkte 56480

Der einfachste Weg, ohne eine Codebehind-Datei zu erstellen, besteht darin, dies an einer beliebigen Stelle Ihrer .aspx-Seite einzufügen:

<script runat="server">
  private void Page_Load(object sender, System.EventArgs e)
  {
     //Initialize your control.
  }
</script>

0voto

veggerby Punkte 8810

Ich (scheinen zu erinnern, ich) haben etwas ähnliches zu tun direkt in der Ansicht (.aspx) gesehen:

<%
   grid.DataSource = Model;
   grid.DataBind();
%>

Ich arbeite für Telerik-Steuerelemente, und die vorgeschlagene Lösung riecht sehr danach, also wird das vielleicht für Sie funktionieren?

0voto

Tomas Aschan Punkte 55585

Alle Kontrollen mit ViewState wird nicht funktionieren in ASP.NET MVC - die Norm System.Web.UI.WebControls.GridView ist einer von ihnen, aber ich weiß nicht, ob die grid Kontrolle in der von Ihnen verwendeten Bibliothek. Beachten Sie jedoch, dass alle Steuerelemente, die eine ViewState nicht richtig funktionieren, da die Unterschiede zwischen MVC et WebForms .


Klarstellung: Wenn die GridView 's Viewstate et PostBack Funktion nicht genutzt wird, funktioniert sie natürlich in einer ASP.NET MVC View auch. Es gibt jedoch keine OnLoad Ereignis zu überschreiben, da die Seite nicht den gleichen Lebenszyklus hat, so dass die bereits vorgeschlagene Lösung wahrscheinlich die beste ist, wenn dieses Steuerelement verwendet werden soll.

<%
    grid.DataSource = Model;
    grid.DataBind();
%>

Achten Sie auch darauf, dass dies oben auf Ihrer Seite steht.

0voto

Craig Stuntz Punkte 124703

Hier finden Sie ein Video und ein herunterladbares Beispielprojekt, das zeigt, wie Sie die Developer Express-Steuerelemente in einem MVC-Projekt verwenden. Die Unterstützung von Developer Express für MVC ist angeblich in Vorbereitung. Im Moment müssen Sie noch mit Problemen bei der Ereignisbehandlung und der Abhängigkeit vom View-Status zurechtkommen. Aber was ich kürzlich gehört habe, ist, dass sie beabsichtigen, MVC zu unterstützen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X