asp.net действие MVC URL игнорировать старые значения параметров - PullRequest
5 голосов
/ 03 марта 2012

У меня есть следующий маршрут:

context.MapRoute
(
    "PersonArea_tripleInt", 
    "PersonArea/{controller}/{action}/{int1}/{int2}/{int3}",
    new { controller = "Person", action = "Index" }, new { int1 = new IntConstraint(), int2 = new IntConstraint(), int3 = new IntConstraint() } 
);

Я использую в своем контроллере, как это:

RoleListUrl = Url.Action("RoleList", "Person", new { Area = "PersonArea" }),

Чтобы создать этот URL: "/ PersonArea / Person / RoleList"

На мой взгляд, у меня есть выпадающие списки, которые будут заполнять значения int1, int2 и int3. Я использую JavaScript в клиенте, чтобы заполнить оставшуюся часть URL:

"/ PersonArea / Person / RoleList / 12 / 43/76"

Это прекрасно работает в первый раз, но когда страница перезагружается, старые значения (12, 43, 76) повторно используются при создании базового URL в моем контроллере. Итак, когда пользователь взаимодействует с выпадающими списками, на клиенте создается следующий URL:

"/ PersonArea / Person / RoleList / 12/43 / 76/88 / 154/78"

Как получить Url.Action, чтобы игнорировать старые значения (12, 43, 76) при последующих публикациях на сервере, чтобы клиент мог создать правильный URL-адрес? Вместо этого я прибегаю к жесткому кодированию базового URL ("/ PersonArea / Person / RoleList /") в контроллере.

Я просто хочу, чтобы контроллер каждый раз создавал "/ PersonArea / Person / RoleList" и позволял клиенту заполнять остальные параметры.

Чего мне не хватает? Спасибо.

1 Ответ

2 голосов
/ 03 марта 2012

Попробуйте очистить значения маршрута явно:

RoleListUrl = Url.Action("RoleList", "Person", new { Area = "PersonArea", int1 = "", int2 = "", int3 = "" }),
...