Frage

Ich wandelte meine web-Anwendung von der Vorschau-3-beta1 und versuche nun, die neuen Funktionen des Frameworks zu verwenden.Einer von Ihnen ist ModelBinding.

Für diese Besondere situation, in der ich eine Klasse angelegt, die (jetzt) nur ein container, der eine Reihe von einfachen-Typ-Eigenschaften.Wenn ich ein Formular erstellen, mit einer Reihe von Textfeldern, ich möchte den Rahmen zu füllen SearchBag Beispiel mit diesen Feldern.

  • Wo fange ich an?Ist dieses Verhalten out of the box oder muss ich implementieren SearchBagBinder?Ich hatte einen schnellen Blick am IModelBinder, kann aber nicht ganz wickeln Sie meinen Kopf um ihn herum und der DefaultModelBinder Quelle nicht machen Sie mich zu jeder klüger.
  • Was ist das ModelBindingContext?
  • Wie tun ich Zugang meine-Formularfelder?
  • Was ist, wenn die Werte werden nicht weitergegeben durch eine form, sondern durch die Eingabe eines URL direkt?
  • Wo finde ich up-to-date Informationen hierzu (die meisten blogs sind veraltet)?Ich dachte, dass ich einen Beitrag Lesen von Phil auf einmal, aber ich kann nicht zu finden scheinen, ist es nicht mehr.

Jede Hilfe wird geschätzt.

War es hilfreich?

Lösung

  • Wo fange ich an?Ist dieses Verhalten out of the box oder muss ich implementieren SearchBagBinder?Ich hatte einen schnellen Blick am IModelBinder, kann aber nicht ganz wickeln Sie meinen Kopf um ihn herum und der DefaultModelBinder Quelle nicht machen Sie mich zu jeder klüger.

Es ist aus der box.Sie können entweder UpdateModel oder ModelBinder zu erreichen, was Sie suchen zu tun.

  • Was ist das ModelBindingContext?

Dieser enthält alle notwendigen Informationen für die Anforderung gebunden zu sein, die zu Ihrem Modell.Ähnlich ControllerContext und ActionFilterContext, es ist im Grunde der Zustand der ModelBinder und enthält alle notwendigen Informationen, um zu tun, was Sie wollen, wenn Sie Folgen Sie den ASP.NET MVC-teams Empfehlungen für das, was die ModelBinder tun soll.

  • Wie tun ich Zugang meine-Formularfelder?
context.HttpContext.Request.Forms["myformfield"];

oder

foreach (var field in context.HttpContext.Request.Forms.Keys) {
    var value = context.HttpContext.Request.Forms[field];
}
  • Was ist, wenn die Werte werden nicht weitergegeben durch eine form, sondern durch die Eingabe eines URL direkt?

Wenn Sie überprüfen müssen, um sowohl die Form und die QueryString-nur eine Schleife durch beide Sammlungen.

foreach (var field in context.HttpContext.Request.Forms.Keys) {
    var value = context.HttpContext.Request.Forms[field];
}
foreach (var field in context.HttpContext.Request.QueryStrings.Keys) {
    var value = context.HttpContext.Request.QueryStrings[field];
}

oder Sie können eine Schleife durch Param enthalten wird, die Form, QueryString, Header, etc.

foreach (var field in context.HttpContext.Request.Params.Keys) {
    var value = context.HttpContext.Request.Params[field];
}
  • Wo finde ich up-to-date Informationen auf dieser*(die meisten blogs sind veraltet)?Ich dachte, dass ich einen Beitrag Lesen von Phill gleichzeitig, aber ich kann nicht zu finden scheinen, ist es nicht mehr.

Sie haben es richtig Phil ist der beste Platz für Sie Informationen, wie die Uhr ASP.NET MVC.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top