【问题标题】:Passing GET parameters mvc 4 in .cshtml page在 .cshtml 页面中传递 GET 参数 mvc 4
【发布时间】:2015-06-28 21:00:48
【问题描述】:

我对 mvc 比较陌生,我正在为我的网站做一些分页。 我想知道如何从我的 url 访问 GET 参数,所以我可以执行以下操作:

@html.Actionlink("next page", "index", "someController", null, ?searchvalue1=GETPARAM1&searchvalue2=GETPARAM2&page=GETPARAM3 + 1)

网址类似于

http://www.something.com/controller?searchvalue1=foo&searchvalue2=bar&page=1

这是可能的还是有解决方法?

提前致谢!

【问题讨论】:

    标签: c# asp.net-mvc-4 get


    【解决方案1】:

    使用 QueryString ,例如:

    @{
        string searchvalue1= Request.QueryString["searchvalue1"];
        string searchvalue2= Request.QueryString["searchvalue2"];
        string page= Request.QueryString["page"];
    }
    

    来源: Send and Receive data in .cshtml page

    它适用于我,

    【讨论】:

      【解决方案2】:

      你想要的是这样的:

      @html.Actionlink("next page", "index", "someController", new { 
        searchvalue1=Request["searchvalue1"],
        searchvalue2=Request["searchvalue2"],
        page=Convert.ToInt32(Request["page"]) + 1
      })
      

      作为最后一个参数传递的匿名对象中的属性是 GET 变量的名称,它们的值是 URL 中传递的值。

      【讨论】:

      • @ValentijnSpruyt - 你是对的,更新了我的答案 - 你可以简单地使用 Request 对象来访问 GET 参数,尽管理想情况下控制器应该将这些放入模型中更可测试的东西。
      【解决方案3】:

      访问控制器中的值,您需要为控制器操作添加相应的参数。这是我之前使用过的分页动作方法:

      public ActionResult Index(int page = 1, string sort = Schools.DefaultSort, string sortDir = SortConstants.Ascending)
      {
          // action code goes here
      }
      

      希望这会有所帮助,如果您需要更多信息,请告诉我。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-11
        • 1970-01-01
        • 1970-01-01
        • 2019-05-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多