如何在 ASP.NET MVC Web API 的 URL 末尾将电子邮件作为参数传递?
如下所示:
test.com/api/sales/getcustomerorders/test@test.com
我想将电子邮件地址作为参数传递给 getcustomerorders 操作。
我们可以使用查询字符串传递。但我想像上面一样格式化网址。
谢谢。
如何在 ASP.NET MVC Web API 的 URL 末尾将电子邮件作为参数传递?
如下所示:
test.com/api/sales/getcustomerorders/test@test.com
我想将电子邮件地址作为参数传递给 getcustomerorders 操作。
我们可以使用查询字符串传递。但我想像上面一样格式化网址。
谢谢。
在 WebApiConfig 中将路由设为“/{email}/”。结尾的“/”会阻止你得到 No HTTP resource was found that match the request URI ...
这里的问题是您的网址中有句点。
为了使其正常工作,更改您的 web 配置以添加以下两个配置:
<configuration>
<system.web>
<httpRuntime relaxedUrlToFileSystemMapping="true" />
</system.web>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
</configuration>
Haacked 有一篇关于 relexUrlToFileSystemMapping 的博客http://haacked.com/archive/2010/04/29/allowing-reserved-filenames-in-URLs.aspx
我在 IIS express 8 中有一个关于它的错误,需要 runAllManagedModulesForAllRequests: https ://aspnetwebstack.codeplex.com/workitem/226
Scott Hanselman 在这篇博文中对此进行了介绍。作为替代方案,您可以将电子邮件作为查询字符串参数传递,而不是作为路径的一部分,因为某些字符是不允许的。