- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用 ASP.NET MVC 预览 5(尽管这也已在 Beta 中尝试过),路由中的查询字符串默认值似乎覆盖了在查询字符串中传递的值。重现是编写这样的 Controller :
public class TestController : Controller
{
public ActionResult Foo(int x)
{
Trace.WriteLine(x);
Trace.WriteLine(this.HttpContext.Request.QueryString["x"]);
return new EmptyResult();
}
}
routes.MapRoute(
"test",
"Test/Foo",
new { controller = "Test", action = "Foo", x = 1 });
/Test/Foo?x=5
1
5
routes.MapRoute(
"test",
"Test/Foo",
new { controller = "Test", action = "Foo" });
5
5
最佳答案
使用 QueryStrings 查看 ASP.NET MVC 的最佳方法是将它们视为路由不知道的值。正如您所发现的,QueryString 不是 RouteData 的一部分,因此,您应该将作为查询字符串传递的内容与路由值分开。
如果从 QueryString 传递的值为空,则解决这些问题的一种方法是在操作中自己创建默认值。
在您的示例中,路由知道 x,因此您的 url 应该看起来像这样:
/Test/Foo or /Test/Foo/5
routes.MapRoute("test", "Test/Foo/{x}", new {controller = "Test", action = "Foo", x = 1});
/Test/Foo/5?page=1
public ActionResult Foo(int x, int? page)
{
Trace.WriteLine(x);
Trace.WriteLine(page.HasValue ? page.Value : 1);
return new EmptyResult();
}
Url: /Test/Foo
Trace:
1
1
Url: /Test/Foo/5
Trace:
5
1
Url: /Test/Foo/5?page=2
Trace:
5
2
Url: /Test/Foo?page=2
Trace:
1
2
关于asp.net-mvc - ASP.NET MVC QueryString 默认覆盖提供的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/458288/
我喜欢使用 Python 的 SimpleHTTPServer 来本地开发各种需要通过 Ajax 调用等方式加载资源的 Web 应用程序。 当我在我的 URL 中使用查询字符串时,服务器总是重定向到相
我们正在使用 Swagger/Swashbuckle 生成 OpenApi 定义。然后将此定义导入到 Azure API 管理中。 我们在 get 请求中有一些我们标记为必需的查询字符串参数。我们的验
我有一个带有查询字符串的页面请求,例如http://www.xyz.net/Orders.aspx?OrderID=1。该页面显示在浏览器中。现在页面上有一个 asp:LinkButton ,它应
我们有以下重写规则: RewriteRule ^([A-Za-z0-9\_]+)$ index.php?rewrite=$1 [L,QSA] 我们想知道是否有一种方法可以让 ?rewrite=$1
我们有以下重写规则: RewriteRule ^([A-Za-z0-9\_]+)$ index.php?rewrite=$1 [L,QSA] 我们想知道是否有一种方法可以让 ?rewrite=$1
我需要http://profiles.mysite.com/Me显示什么http://mysite.com/profile.php?user=Me会显示。 “我”根据用户名而变化。它可以包含空格并且不
我正在努力实现以下条件 orgId =“z2store”,类型 =“web”,日期时间 =“12:17:08” 下面是我写的查询 GET /sample/_search { "bool" : {
我有一个网址: http://mywebsite.com/Account/?Number=25191108&Name=Something&Remote=False 我想重定向到: http://ano
是否可以在回发时附加到查询字符串?如果是,您到底是怎么做到的? 谢谢! 最佳答案 据我所知不是。您对 ASP.NET 的回发没有太多控制。对于另一种类型的应用程序,您可以发布到另一个页面。我知道在 a
我在一个支付平台上工作,为了响应支付,一个简单的 GET 调用,在查询字符串中有一些参数,是对我的听众的: http://localhost/mytest/listener?TIMECREATED=0
方法一: 在 JavaScript 中,可以使用 URLSearchParams 对象来处理 URL 中的查询字符串. 序列化(将 JavaScript 对象转换为查询字符串)可以使用 URLSe
一,开篇分析 这篇文章把这三个模块拿来一起说,原因是它们各自的篇幅都不是很长,其次是它们之间存在着依赖关系,所以依次介绍并且实例分析。废话不多说了,请看下面文档: (1),"Url模块
我想将查询字符串附加到页面内的所有动态链接上 - 以修复旧版本中的错误 - 这可能吗? 有什么想法吗? 最佳答案 类似这样的吗? var querystring = 'myquerystringtoa
我使用以下代码从 LogIn.aspx 获取 LogedInUser 并将其发送到 Chat.aspx 然后将其发送到 FrmForAjaxCalls 从 Db 返回数据并将其填充到 div 上,但在
我今天在 Web 应用程序中重构一些代码,并在所有网页的基类中遇到了类似的内容: if (Request.QueryString["IgnoreValidation"] != null) {
我想创建一个联系人页面, 我有以下代码: #:Name# #:Surname# 还有两个值(contactNumber 和 Email) 在第一个 View 中,我只显示名称,我想在单击时
大家早上好, 我有一个系统,需要发送一封电子邮件,其中包含我在 JS 中的一些变量。代码一开始对我来说看起来不错,但是 Request.QueryString 没有返回任何内容。我正在尝试使用 Req
在 aspx 页面中我有 anchor 标记。我的 URL 已经有我想重用的 Id 参数。要求是将用户重定向到具有当前 url id 的提及页面,例如 "~/Dir/Home?Id=" & Reque
我使用 request.querystring 只是为了访问我从一个页面传递到另一个页面的参数。 它给了我一个错误。 Non-invocable member 'System.Web.HttpRequ
此问题与上一个问题相关 Passing Variable from page to page using ASP.NET (C#) without using QueryString 我的情况的不同之
我是一名优秀的程序员,十分优秀!