asp.net-mvc – 为什么这个路由参数被添加到查询字符串中?
|
我有一个ASP.NET MVC 3应用程序,它记录用户的计步器条目.用户可通过访问/计步器查看所有最新的计步器条目,并可通过访问/计步器/ 2011,/计步器/ 2011/08和/计步器/ 2011 /等URL按年,年/月或年/月/日过滤分别于08/15. 我在Global.asax中创建了两个映射路由.第一条路由(如下所示)允许各种URL模式按日期过滤.第二个路由(未显示)是默认的ASP.NET MVC路由. routes.MapRoute(
"PedometerEntries",// Route name
"Pedometer/{year}/{month}/{day}",// URL with parameters
new
{
controller = "Pedometer",action = "Index",year = UrlParameter.Optional,month = UrlParameter.Optional,day = UrlParameter.Optional
},// Parameter defaults
new
{
year = @"d{4}",month = @"([012]?d{1})?",day = @"(([1-9])|([12][0-9])|(3[0-1]))?"
} // Parameter constraints
);
这是我的问题.我有一个视图,我想创建一个形式的链接:currentUrl?format = csv,它将允许用户以CSV格式下载所请求的URL的计步器条目.因此,如果用户正在访问/计步器,下载链接将是/计步器?格式= csv.如果用户正在访问/计步/ 2011/08,下载链接将是/ Pedometer / 2011/08?format = csv. 为了创建这样的链接,我添加了一个名为DownloadToExcel的自定义Html Helper,其代码如下: public static MvcHtmlString DownloadToExcel(this HtmlHelper helper,string linkText)
{
RouteValueDictionary routeValues = helper.ViewContext.RouteData.Values;
// Add the format parameter to the route data collection,if needed
if (!routeValues.ContainsKey("format"))
routeValues.Add("format","csv");
return helper.ActionLink(linkText,// Link text
routeValues["action"].ToString(),// Action
routeValues); // Route values
}
当我在视图中添加@ Html.DownloadToExcel()标记时,它会生成一个链接,但这就是擦除 – 当用户访问最近的条目或按年/月或年/月/日过滤的条目时,它可以作为预期,但不是在用户访问年度过滤器URL时. 以下列表显示了用户访问的URL以及自定义Html Helper生成的相应URL: >访问:/计步器 – 下载链接:/计步器?格式= csv 为什么访问/计步器/ 2011下载链接是/计步器?年= 2011&格式= csv而不是/计步器/ 2011?格式= csv?为什么它不适用于那个案例,但按年/月和年/月/日期的情况按预期工作? 谢谢 解决方法这个问题很可能是由Phil Haack在他博客上描述的 this bug引起的.当您有两个连续的可选URL参数时,ASP.NET MVC 3中引入了回归错误.(编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 如何解决应用程序池回收问题的部署与大型应
- asp.net-mvc – 从/到POCO对象的knockoutjs映射
- asp.net-mvc – 如何单元测试应用了[Authorize]属性的控制器
- asp.net-mvc – 如何自定义简单的成员资格提供者来处理我自
- asp.net – 什么是错误代码是0x80070001?那我该怎么解决呢
- asp.net – 具有html5中的文本以外的输入类型的UpdatePanel
- asp.net – ReportViewer – 隐藏PDF导出
- asp.net – 如何在ASP文本框中显示会话值
- ASP.NET Core Web API模板中没有单独的用户帐户auth选项
- asp.net-mvc-3 – 如何在MVC3上使用authorize属性
- asp.net-mvc – 在ASP.NET MVC中下载动态生成的文
- asp.net文件上传解决方案(图片上传、单文件上传
- ASP.NET Azure中的Trace.WriteLine
- asp.net – HttpError不会显示自定义错误页面
- asp.net-mvc-3 – System.Web.Mvc.HandleErrorIn
- asp-classic – 在VBScript中输出GUID会忽略它之
- asp经典 – 如何获得经典ASP中的当前域?
- 什么是最小的方式来缩小ASP.NET生成的Javascript
- asp.net-mvc – 对HTTP POST请求的正确响应是什么
- asp.net-mvc – ASP.NET身份与简单的会员优点和缺
