J'ai un filtre sur une vue qui fonctionne sur une forme postback:MvcSiteMapNode null sur postback
[Route("mypath/{param}/", Name = "myaction")]
[MvcSiteMapNode(Title = "My Form", ParentKey = "myparentaction",
Key = "myaction", PreservedRouteParameters = "param")]
public ActionResult myaction(string param) {
// code
}
[Route("mypath/{param1}/{param2?}/{param3?}/{param4?}/")]
[HttpPost]
public ActionResult myaction(string param1, string param2= "", int param3= 0, int param4= 0)
{
// code
var node = SiteMaps.Current.CurrentNode;
node.Title = param1;
}
Sur le point de vue que j'ai un formulaire avec quelques boîtes de liste déroulante et cachée pour les 4 params:
@using (@Html.BeginForm("myaction", "mycontroller", FormMethod.Post, new { @class = "form-horizontal", @role = "form" }))
{
@Html.DropDownListFor(param2.... onchange = @"this.form.submit();"
@Html.DropDownListFor(param3.... onchange = @"this.form.submit();"
@Html.DropDownListFor(param4.... onchange = @"this.form.submit();"
@Html.HiddenFor(param1....
}
Lors du changement des listes déroulantes, il déclenche la publication. Quand je fais d'abord une sélection, le nœud actuel est nul. Si je commente ce code de nœud, le filtre ne fonctionne qu'une seule fois. Si je fais une autre sélection, c'est 404s.