asp.net-mvc-2 – 在名称中使用连字符处理MVC2变量
发布时间:2020-09-01 14:42:23 所属栏目:asp.Net 来源:互联网
导读:我正在使用一些第三方软件,它们在名称中创建带有连字符的查询字符串参数.我正在看一下 this SO question,看起来他们的解决方案非常接近我需要的但是我对基础MVC的东西太无知了,想弄清楚如何调整它来做我需要的东西.理想情况下,我想简单地用下划线替换连字符,
我正在使用一些第三方软件,它们在名称中创建带有连字符的查询字符串参数.我正在看一下 this SO question,看起来他们的解决方案非常接近我需要的但是我对基础MVC的东西太无知了,想弄清楚如何调整它来做我需要的东西.理想情况下,我想简单地用下划线替换连字符,这将是一个很好的解决方案.如果有一个更好的,那么我有兴趣听到它. 我想要处理的URL的一个例子是: http://localhost/app/Person/List?First-Name=Bob&My-Age=3 使用此控制器: public ActionResult List(string First_Name,int My_Age) { {...} } 重复一遍,我无法更改生成的查询字符串,所以我需要以某种方式支持它与我的控制器.但是怎么样? 作为参考,下面是自定义RouteHandler,用于处理控制器名称中的下划线和上面引用的SO问题中的操作名称,我们可以修改它以实现我想要的: public class HyphenatedRouteHandler : MvcRouteHandler { protected override IHttpHandler GetHttpHandler(RequestContext requestContext) { requestContext.RouteData.Values["controller"] = requestContext.RouteData.Values["controller"].ToString().Replace("-","_"); requestContext.RouteData.Values["action"] = requestContext.RouteData.Values["action"].ToString().Replace("-","_"); return base.GetHttpHandler(requestContext); } } 解决方法你试过[Bind(Prefix =“First-name”)]吗?它可能有用……一种方法是使用自定义模型绑定器.另一种方法是使用动作过滤器.如果要对特定类型执行此操作,请使用模型绑定器.如果要对特定操作或控制器执行此操作,请使用操作筛选器.因此,对于后一种方法,您可以执行以下操作: public override void OnActionExecuting(ActionExecutingContext filterContext) { var keys = filterContext.HttpContext.Request.QueryString.AllKeys.Where(k => k.Contains('-')); foreach(var k in keys) { filterContext.ActionParameters.Add( new KeyValuePair<string,object>( k.Replace('-','_'),filterContext.HttpContext.Request.QueryString[k])); } base.OnActionExecuting(filterContext); } (编辑:哈尔滨站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 如何在ASP.NET中的GridView中定义CellPadding
- asp.net-mvc – 如何在ASP.NET MVC中生成弹出页面链接
- 在asp.net中使用加密数据库联接字符串保证数据安全
- ASP.NET性能优化之局部缓存分析
- asp-classic – 经典的asp / asp.net网站 – global.asa无效
- asp.net-core – 我为什么要选择带有.Net核心的ASP.NET Cor
- asp.net-mvc – 如何将MVC 5 IdentityModels.cs移动到单独的
- asp.net-mvc – 为什么MVC4捆绑捆绑Knockout.js?
- ASP.NET中的应用程序生存期
- asp.net-mvc – 如何在ASP.NET MVC4中使用具有唯一标识符UR
推荐文章
站长推荐
- asp.net-mvc – UpdateModel前缀 – ASP.NET MVC
- asp.net – 允许服务器/ usercontrol上的任何属性
- ASP.NET MVC编辑器模板和Html.EditorFor(…) –
- asp.net – 在为app_offline.htm提供特定URL时,将
- ASP.NET C#ListBox服务器控件不会禁用
- asp.net – Orchard CMS是否支持移动呈现?
- asp.net使用AJAX实现无刷新分页
- 勾选复选框时,禁用一些ASP.Net验证控件
- asp.net-mvc-3 – 如何避免使用MVC3 FileContent
- asp.net-mvc – 为什么我的视图模型中的内部成员
热点阅读