Как изменить URL-адрес в ASP.NET MVC при отправке формы? - PullRequest
1 голос
/ 24 июня 2010

Я работаю над веб-страницей, которая предлагает форму с раскрывающимся списком для просмотра данных за другой год. Год является частью настроенной маршрутизации URL. Когда страница загружается, URL-адрес может выглядеть примерно так: Activitylog / Department / Year.

Когда форма отправляется на этой странице, URL-адрес не изменяется, даже если пользователь выбрал другой год для просмотра. Кажется, все на самом деле работает правильно. При изменении года с 2010 на 2008 в форме на веб-сервере отображается правильная информация за 2008 год.

Однако URL-адрес, отображаемый в браузере, продолжает отображать 2010. Хотя это не является реальной проблемой, я чувствую, что было бы неплохо отобразить прямой URL-адрес для этой конкретной динамической страницы, например: activitylog / IT / 2008.

Каков предпочтительный метод для обработки чего-то подобного? Я считаю, что я мог бы использовать JQuery для захвата отправки формы и создания нового URL-адреса, используя выбранный год.

Есть ли метод, встроенный в MVC, который может справиться с этим, который я пропускаю?

Ответы [ 2 ]

3 голосов
/ 24 июня 2010

Вы можете использовать jQuery для изменения действия формы перед отправкой:

$(function() {
    $('#idofyourform').submit(function() {
        var selectedYear = $('#idofyeardropdown').val();
        this.action = this.action.replace(/\/[\d]{4}$/, '/' + selectedYear);
        return true;
    });
});
1 голос
/ 24 июня 2010

Javascript станет вашим другом здесь.

Возможно, вы захотите создать метод javascript для изменения свойства action в форме и либо использовать событие onSubmit в форме, либо вызвать вашу кнопку.этот метод напрямую (не используйте type = "button" и не type = "submit" на входе), и метод должен установить действие, а затем отправить форму.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...