asp.net-mvc – 如何传递特殊字符使ASP.NET MVC可以正确处理查询字符串数据?
|
我正在使用像这样的路线: routes.MapRoute("Invoice-New-NewCustomer","Invoice/New/Customer/New/{*name}",new { controller = "Customer",action = "NewInvoice" },new { name = @"[^.]*" });
有一个处理这条路线的动作: public ActionResult NewInvoice(string name)
{
AddClientSideValidation();
CustomerViewData viewData = GetNewViewData();
viewData.InvoiceId = "0";
viewData.Customer.Name = name;
return View("New",viewData);
}
当我调用返回RedirectToAction(“NewInvoice”,“Customer”,new {name});并且名称等于“C#Guy”,“name”参数被截短为“C”. 所以我的问题是:使用ASP.NET MVC处理这种特殊字符的最好方法是什么? 谢谢! 解决方法好的,我确认这是现在ASP.NET路由中的一个已知问题,不幸的是.问题在于,在路由深处,我们在转移Uri的路由参数时使用Uri.EscapeString.但是,该方法不会退出“#”字符.请注意,#字符(也称为Octothorpe)在技术上是错误的字符. C语言实际上是一个“C”,其次是音乐中的夏普标志:http://en.wikipedia.org/wiki/Sharp_(music) 如果你使用了尖锐的标志,那可能会解决这个问题. :P 另一个解决方案,因为大多数人想要使用octothorpe是为此路由编写一个自定义路由,并且在获取虚拟路径路径之后,使用编码#到#的HttpUtility.UrlEncode编码#符号. 作为一个后续行动,我想指出这个博文,其中谈到传递其他“无效”字符. http://haacked.com/archive/2010/04/29/allowing-reserved-filenames-in-URLs.aspx (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – ASP.NET MVC – Cascading Drop Down
- asp.net-mvc-3 – MVC 3 – 比较属性 – 在客户端执行不区分
- asp.net-mvc-3 – 在MVC3中禁用HTML.TextAreaFor
- asp.net – 比较Razor vs ASPX语法
- asp.net-mvc – 哪个选择:ASP.NET MVC或RESTful WCF?
- 只有内容控件才能直接在包含ASP.NET内容控件的内容页面中
- asp.net-mvc – 如何构建一个企业MVC应用程序,业务逻辑在哪
- asp.net-mvc – 保护MVC中的文件夹
- asp.net – 无法加载viewstate.正在加载viewstate的控制树必
- asp.net – 循环访问复选框列表
- asp.net – 什么是部分回发?
- asp.net – 自定义Web字体在IE9中不起作用
- asp.net – UpdatePanel异常处理
- asp.net-mvc – ASP.Net MVC 2验证是否需要更多的
- 如何在ASP.NET中以程序方式模拟HTTP POST?
- asp.net-mvc – ASP.net MVC – 显示模板集合
- asp.net-mvc – 在ASP.NET MVC DisplayFor Html
- asp.net-mvc – 如何使用Ninject将服务注入授权过
- asp.net-mvc – ASP.NET MVC中的CSS/JS文件的自动
- asp.net-mvc – asp.net MVC DisplayTemplates和
