asp.net-mvc-4 – 如何让{controller} / {id} / {action}在MVC4
发布时间:2020-12-16 09:53:02 所属栏目:asp.Net 来源:网络整理
导读:我已经尝试了所有东西,但看起来我根本就没有得到它.我的WebApiConfig.cs看起来像这样: config.Routes.MapHttpRoute( "Default","api/{controller}/{id}",new { id = RouteParameter.Optional });config.Routes.MapHttpRoute( "AccountVerification","api/{c
我已经尝试了所有东西,但看起来我根本就没有得到它.我的WebApiConfig.cs看起来像这样:
config.Routes.MapHttpRoute( "Default","api/{controller}/{id}",new { id = RouteParameter.Optional }); config.Routes.MapHttpRoute( "AccountVerification","api/{controller}/{id}/{action}",null,new { controller = "Account" }); 我的控制器看起来像这样: public class AccountController : ApiController { public HttpResponseMessage GetByKey(Guid accountID) { ... } [HttpGet] [ActionName("Verify")] public HttpResponseMessage VerifyAccount(Guid accountID) { ... } } 这些方法应该受到以下网址的影响: GET /api/account - WORKS GET /api/account/00000000-0000-0000-000000000001 - WORKS GET /api/account/00000000-0000-0000-000000000001/verify - DOESNT WORK 我尝试了很多东西;我肯定在这里做错了…请帮忙. 解决方法
首先,如果你想用假Guids测试,以及有可选的Guid参数,它们必须是Nullable参数(假guid将被反序列化为null):
public class AccountController : ApiController { public HttpResponseMessage GetByKey(Guid? accountID) { throw new Exception("GetByKey " + (accountID.HasValue ? accountID.ToString() : "NULL")); } [System.Web.Http.HttpGet] [System.Web.Http.ActionName("Verify")] public HttpResponseMessage VerifyAccount(Guid? accountID) { throw new Exception("VerifyAccount "+(accountID.HasValue?accountID.ToString():"NULL")); } } 那么,你的映射应该: >首先使用最具体的路线 config.Routes.MapHttpRoute( "AccountVerification","api/{controller}/{accountID}/{action}" ); config.Routes.MapHttpRoute( "Default","api/{controller}/{accountID}",defaults: new { Controller="Account",action = "GetByKey",accountID = RouteParameter.Optional } ); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – WCF Web Api作为asp.net mvc 3应用程序的子
- Global.asax
- asp.net – Autofac OWIN TestServer和HttpContext
- 在ASP.NET 2.0中的特定时间清除缓存
- asp.net – 使用带有模拟的Windows身份验证的Web应用程序的
- 如何在Asp.net中使用HSL
- asp.net-mvc – ASP.NET MVC View可以使用来自不同项目的模
- asp.net-web-api – 使用SimpleInjector有没有办法用.net 4
- iis – 经典ASP上的500服务器错误 – 无法获得更多详细信息
- ASP.NET Core使用TopShelf部署Windows服务
推荐文章
站长推荐
- asp.net – 使用Visual Studio发布Web App项目
- asp.net – 使用X-Forwarded-For Windows Filter
- asp.net中使用Page.Validate()和Page.IsValid进行
- asp.net-mvc – 在MVC中将值从Controller传输到S
- asp.net – 如何调试w3wp clr.dll错误
- Godaddy ASP.NET会员数据库困境
- asp.net-mvc – .NET 4.5 MVC RouteCollection.L
- asp.net – Linq对sql对象是否可序列化为会话状态
- asp.net-core-2.1 – 配置HttpClientFactory以使
- asp.net – 我想在div中使用li标签,但不推荐这是
热点阅读