asp.net-mvc – 如何将查询字符串映射到MVC中的操作方法参数?
发布时间:2020-12-16 03:35:33 所属栏目:asp.Net 来源:网络整理
导读:我有一个网址http:// localhost / Home / DomSomething?t = 123 s = TX我想将此网址路由到以下操作方法 public class HomeController{ public ActionResult DoSomething(int taxYear,string state) { // do something here }} 由于查询字符串名称与操作方
我有一个网址http:// localhost / Home / DomSomething?t = 123& s = TX我想将此网址路由到以下操作方法
public class HomeController { public ActionResult DoSomething(int taxYear,string state) { // do something here } } 由于查询字符串名称与操作方法的参数名称不匹配,因此请求不会路由到操作方法. 如果我将网址(仅用于测试)更改为http:// localhost / Home / DomSomething?taxYear = 123& state = TX则其工作正常. (但我没有权限更改请求.) 我知道我可以在动作方法上应用Route属性,并且可以将t映射到taxYear和s to state. 但是,我没有为此映射找到Route属性的正确语法,有人可以帮忙吗? 解决方法
选项1
如果查询字符串参数始终为t和s,则可以使用前缀.请注意,它不再接受taxYear和state. http://localhost:10096/home/DoSomething?t=123&s=TX public ActionResult DoSomething([Bind(Prefix = "t")] int taxYear,[Bind(Prefix = "s")] string state) { // do something here } 选项2 如果要接受这两个URL,则声明所有参数,并手动检查哪个参数具有值 – http://localhost:10096/home/DoSomething?t=123&s=TX http://localhost:10096/home/DoSomething?taxYear=123&state=TX public ActionResult DoSomething( int? t = null,int? taxYear = null,string s = "",string state = "") { // do something here } 选项3 如果您不介意使用第三方软件包,则可以使用ActionParameterAlias.它接受这两个URL. http://localhost:10096/home/DoSomething?t=123&s=TX http://localhost:10096/home/DoSomething?taxYear=123&state=TX [ParameterAlias("taxYear","t")] [ParameterAlias("state","s")] public ActionResult DoSomething(int taxYear,string state) { // do something here } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – MVC DropDownListFor – NullReferenceExceptio
- ASP.NET Core中的依赖注入(3): 服务的注册与提供
- .net core项目修改appsetting配置后未自动更新的解决办法
- asp.net-web-api – ASP.NET Web API消息处理程序
- asp.net-mvc – 如何更改ASP.NET MVC中的默认验证错误消息?
- 如何在ASP.NET中运行时更改FormsCookieName
- asp.net – HttpContext.Request.Cookies和HttpContext.Res
- asp.net – 了解runat服务器属性
- 在asp.net中将大量数据导出到客户端
- asp.net-mvc-3 – MVC3客户端验证无法使用Ajax.BeginForm表
推荐文章
站长推荐
- 初识ABP vNext(4):vue用户登录&菜单权限
- asp.net-core – 什么是aspnet50和aspnetcore50?
- asp.net-mvc – 通过Post和ASP.NET MVC上传Amazo
- asp.net-mvc-4 – 从数据库上传模型时丢失dataAn
- asp.net-mvc – NUnit中的MbUnit的行属性?
- asp.net – 是否可以为MaskedEditExtender设置掩
- 在ASP.NET Web应用程序之间传递会话数据
- asp.net-mvc – ELMAH MVC 2 – Castle Windsor的
- asp.net – Jquery验证插件是否需要表单标记?
- ASP.NET Handler(ashx)vs MVC Controller Action
热点阅读