例如一个分页功能了,表单中有一个文本框中可以输入转到的页码,输入后点击确定表单提交,这时输入的页码会被添加到路由参数中就如这样:Home/Index?PageIndex=2,但有时候分页参数不只有PageIndex这个,可能还有一些过滤筛选条件之类的,如何可以在提交时,把这些参数带上呢?谢谢大家!

解决方案 »

  1.   

    routes.MapRoute(
                    "Default1",                                             
     // Route name
                    "Home/index/{pagesize}/{pageindex}/{name}",                          
     // URL with parameters
                    new { controller = "Home", action = "index", pagesize = 10, pageindex = 1 ,name=""}  
    // Parameter defaults
                    , new { pagesize = @"[1-9]\d*", pageindex = @"[1-9]\d*" }
                );
      

  2.   

    @Html.ActionLink(" Next >", "Index", new { page = 10, sortOrder = "正序"})参数用逗号隔开,控制器的接受参数加上相应名称,数据会自动匹配上。
      

  3.   

    Post方式设置为Form将参数放在Form中就好了,既可以传多个参数,也方便后台用对象来序列化这些参数
      

  4.   

    把其它的参数放到隐藏域<input type="hidden" name="参数名">里,
      

  5.   

    这里的sortOrder = "正序"写死当然是可以的,但如果这个new{}里面的参数有一部分是动态的,有生么好办法呢?我现在的解决方法是写了一个html扩展方法,每个ActionLink中都调用一下这个方法啊,返回一个构建好的路由字典。
      

  6.   

    这个可行,但这个方法所带的参数是以"?pageindex=1&pagesize=2"的方式传递的,我想要想这种方式传递"HomeController/Index/1/2",我已经配置好路由了routes.MapRoute(
                    name: "Test",
                    url: "{controller}/{action}/{page}/{orderBy}/{pageSize}",
                    defaults: new { controller = "Home", action = "Index", page = UrlParameter.Optional, orderBy = UrlParameter.Optional, pageSize = UrlParameter.Optional }
                );
      

  7.   


    我是真心的佩服你,为了怕你不明白,给你写上sortOrder=“。。”。你把“正序”修改为变量,不就能变了吗
      

  8.   

    这位朋友,我说动态的意思是,这里的参数不一定是sortOrder,有可能是其他键值,或者应该说,我需要动态构建一整个路由数据字典。有谁会不知道“正序”可以修改为变量吗。而且你也是问非所答,我是说表单提交,不是超级链接。不过还是感谢你的关注。