Question

Il y a des tonnes d'exemples pour le modèle de liaison dans les formulaires html, mais je me demande s'il est possible, et si oui comment, modèle d'utilisation obligatoire pour ActionLinks / requêtes GET.

Alors, étant donné le modèle suivant

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

et l'itinéraire suivant (je ne sais pas comment cela serait formé, je vous présente pour montrer comment je voudrais l'URL présente les propriétés Str, Chr et DBL)

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

Je voudrais l'utiliser de cette façon dans mon contrôleur

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

et de cette façon dans ma page (deux options possibles,? Sont là plus)

<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>

Est-ce possible avec l'infrastructure de liaison de modèle? Et si oui, ce qui doit être fait à mes échantillons pour les faire travailler?

Était-ce utile?

La solution

Je pense que vous aurez à choisir soit la classe comme une approche de paramètre

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

ou les propriétés à l'approche des paramètres

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

... mais dans la classe comme une approche de paramètre, vous pouvez utiliser la méthode « UpdateModel ». Vous pouvez passer dans une liste blanche des paramètres que vous souhaitez mettre à jour avec cette méthode juste au cas où vous ne souhaitez que mettre à jour quelques valeurs dans votre modèle.

En outre, dans votre MapRoute, ce paramètre sera lurl carte dans votre chemin d'itinéraire? Je suis assez sûr qu'il doit y avoir un à de corrélation directe là.

Autres conseils

Vous pouvez également utiliser un modèle de liaison personnalisée . Lire aussi cette .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top