提交表单时如何修改ASP.NET MVC中的URL?

时间:2010-06-23 20:21:39

标签: asp.net-mvc asp.net-mvc-2

我正在开发一个网页,该网页提供一个带有下拉列表的表单,用于查看来自不同年份的数据。年份是配置的URL路由的一部分。页面加载时,URL可以是:activitylog / department / year。

在此页面上提交表单后,即使用户选择了另一年查看,URL也不会更改。一切似乎都在正常运作。当表格上的年份从2010年更改为2008年时,将从Web服务器显示2008年的正确信息。

然而,浏览器中显示的URL继续显示2010.虽然这不是一个真正的问题,但我觉得显示这个特定动态页面的直接URL会很好,即:activitylog / IT / 2008。

处理这样的事情的首选方法是什么?我相信我可以使用JQuery来捕获表单提交,并使用所选年份生成新的URL。

MVC内置了一个可以处理这个我忽略的方法吗?

2 个答案:

答案 0 :(得分:3)

您可以在提交之前使用jQuery修改表单操作:

$(function() {
    $('#idofyourform').submit(function() {
        var selectedYear = $('#idofyeardropdown').val();
        this.action = this.action.replace(/\/[\d]{4}$/, '/' + selectedYear);
        return true;
    });
});

答案 1 :(得分:1)

Javascript将成为你的朋友。

您可能想要创建一个javascript方法来更改表单上的action属性,并在表单上使用onSubmit事件,或让您的按钮直接调用此方法(不要使用type =“button”而不是在输入上输入=“提交”并让方法设置操作,然后提交表单。