У меня есть фильтр на вид, который работает на форме постбэка:MvcSiteMapNode нуль на постбэка
[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;
}
На взгляд у меня есть форма с некоторыми выпадающих меню и скрытый для 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....
}
Об изменении выпадающих списков он запускает обратную передачу. Когда я сначала делаю выбор, текущий узел равен нулю. Если я прокомментирую этот код узла, фильтр работает, но только один раз. Если я сделаю еще один выбор, это 404s.