相关疑难解决方法(0)

ASP.NET MVC在action方法中删除查询字符串

我有一个看起来像这样的动作方法:

public ActionResult Index(string message)
{
  if (message != null)
  {
    ViewBag.Message = message;
  }
  return View();
}
Run Code Online (Sandbox Code Playgroud)

发生的事情是,对此请求的URL将如下所示:

www.mysite.com/controller/?message=Hello%20world
Run Code Online (Sandbox Code Playgroud)

但我希望它只是看起来

www.mysite.com/controller/
Run Code Online (Sandbox Code Playgroud)

有没有办法删除actionmethod中的查询字符串?

asp.net asp.net-mvc routing query-string

13
推荐指数
2
解决办法
3万
查看次数

如何从查询字符串中删除项目以进行重定向?

在我的基页中,我需要从查询字符串中删除一个项目并重定向.我不能用

Request.QueryString.Remove("foo")
Run Code Online (Sandbox Code Playgroud)

因为该集合是只读的.有没有办法获取查询字符串(除了那一项)而不迭代整个集合并重新构建它?

c# asp.net webforms

8
推荐指数
2
解决办法
2万
查看次数

为什么Request.QueryString只读?

我以为你不能在没有重定向的情况下更改服务器上的QueryString.

但是这段代码对我有效:

Request.QueryString编辑

我很惊讶.

以下是我对此的疑问:

  1. 为什么Request.QueryString只读?
  2. 为什么这个代码/黑客工作*?
  3. 如果您在完成编辑后立即更改为只读,包括错误错误或意外行为,以及维护和理解代码,那么它的安全性如何?
  4. 如果您只使用PageLoad和OnPageRender,那么在事件周期中最有意义的是进行疯狂的编辑?

*更多细节:

我有一个页面,其中包含分组到选项卡的项目.每个选项卡都是一个asp:LinkBut​​ton

我希望能够直接链接到特定选项卡.我使用QueryString参数'tab = tabName'来做到这一点.有用.但是当我单击一个新选项卡时,查询字符串仍然在Url中,因此Querystring中指定的选项卡被激活,而不是我单击的选项卡.

通过使用Request.QueryString编辑,这不会发生.然后我的解决方案"有效".

提前致谢.

asp.net request.querystring

5
推荐指数
1
解决办法
9348
查看次数