代码之家  ›  专栏  ›  技术社区  ›  Swoop

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

  •  1
  • Swoop  · 技术社区  · 14 年前

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

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

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

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

    MVC中是否有内置的方法可以处理我忽略的这个问题?

    2 回复  |  直到 14 年前
        1
  •  3
  •   Darin Dimitrov    14 年前

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

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

    Javascript将成为您的朋友。

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