Frage

Es gibt Unmengen von Beispielen für das Modell in HTML-Formulare zu binden, aber ich frage mich, ob ihre möglich, und wenn ja, wie, verwenden Sie das Modell für ActionLinks / GET-Anfragen verbindlich.

Also, mit dem folgende Modell

public class Lurl
{
  public string Str {get;set;}
  public char Chr {get;set;}
  public double Dbl {get;set;}
}

und die Route folgt (ich bin nicht sicher, wie diese gebildet werden würde, ich es zu zeigen, präsentieren, wie ich möchte die URL der Eigenschaften Str, Chr und DBL präsentiert)

routes.MapRoute(
    "LurlRoute",
    "Main/Index/{str}/{chr}/{dbl}",
    new
    {
        controller = "Main",
        action = "Index",
        lurl = (Lurl)null
    }
);

Ich mag es auf diese Weise in meinem Controller verwenden

[AcceptVerbs(HttpVerbs.Get)]
public ActionResult Index(Lurl lurl)
{
  /* snip */
}

und auf diese Weise in meiner Seite (zwei mögliche Optionen;? Gibt es mehr)

<div class="links">
  <%Html.ActionLink("Link one", "Index", new { lurl = Model })%><br />
  <%Html.ActionLink("Link two", "Index", 
         new { str = Model.Str, chr = Model.Chr, dbl = Model.Dbl })%>
</div>

Ist das möglich mit dem Modell Bindung Infrastruktur? Und wenn ja, was zu meinen Mustern getan werden muss, bekommen sie zu arbeiten?

War es hilfreich?

Lösung

Ich glaube, Sie werden entweder die Klasse als Parameter Ansatz wählen haben

[AcceptVerbs(HttpVerbs.Get)]
public ActionResult Index(Lurl lurl)
{
   /* snip */
}

oder die Eigenschaften als Parameter Ansatz

[AcceptVerbs(HttpVerbs.Get)]
public ActionResult Index(string str, char chr, double dbl)
{
    /* snip */
}

... wenn in der Klasse als Parameter Ansatz, können Sie die „Update“ Methode verwenden. Sie können in einer weißen Liste von Parametern übergeben Sie mit dieser Methode aktualisieren mögen nur, wenn Sie nur ein paar Werte in Ihrem Modell aktualisiert werden sollen.

Auch in Ihrem MapRoute, welche Parameter wird Karte in Ihrer Route Weg lurl? Ich bin mir ziemlich sicher, es hat eine 0.59 Korrelation sein.

Andere Tipps

Sie können auch ein benutzerdefinierte Modelbinder . Lesen Sie auch dieser .

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