ASP.NET MVC3 URL и скрытие идентификаторов - PullRequest
0 голосов
/ 17 мая 2011

У меня есть куча сущностей, которые имеют идентификатор.На одном экране я загружаю «Предмет» на основе идентификатора, например так: "/Results/Subject/53" На этом же экране у меня есть поле со списком, в котором содержится список всех предметов.Пользователь может изменить выбор в этом комбо на другой предмет, и я загружаю результаты для этого предмета, используя ajax.Когда я делаю это, URL-адрес в браузере устарел, поскольку я теперь могу смотреть на /Results/Subject/45 Если пользователь перезагружается, я перезагружаю исходный документ, а не новый.

Я бы хотел обновитьURL (звучит как хакерство), или я бы хотел, чтобы моя навигация основывалась на чем-то еще, кроме Id, как части URL.Как я могу это сделать?Как я могу загрузить контроллеры для определенных элементов без указания идентификатора как части URL.

Ответы [ 2 ]

1 голос
/ 17 мая 2011

Вы также можете передать идентификатор через параметр HTTP GET: /Results/Subject?id=45 или параметр HTTP POST.

Однако я сомневаюсь, что это ответит на ваш вопрос.

Мой коллега столкнулся с подобной проблемой, и он решил ее, изменив строку URL браузера (добавив к ней определенный #anchor).

0 голосов
/ 17 мая 2011

Самый простой способ - отказаться от ajax, когда этот раскрывающийся список изменится, и просто перейти к новому URL-адресу (/Results/Subject/NewID).

Если вы хотите сохранить Ajax, вы можетепросто поместите ключ в конце URL с # как "/ Results / Subject # 53", затем загрузите его через Ajax (# 53 не будет передан на сервер).Таким образом, когда пользователь изменяет раскрывающийся список, вы можете перейти к «/ Results / Subject # NewID» без перезагрузки страницы.

...