如何在ASP.NET MVC Web API的URL末尾将电子邮件作为参数传递?

Use*_*106 19 asp.net-mvc asp.net-web-api

如何在ASP.NET MVC Web API的URL末尾将电子邮件作为参数传递?

如下:

test.com/api/sales/getcustomerorders/test@test.com
Run Code Online (Sandbox Code Playgroud)

我想将电子邮件地址作为参数传递给getcustomerorders操作.

我们可以使用查询字符串传递.但我想像上面那样格式化网址.

谢谢.

Dam*_*tha 29

在WebApiConfig中,将路径设为"/ {email} /".结束"/"将阻止您获取没有找到与请求URI匹配的HTTP资源...


Hon*_*Sun 8

这里的问题是你在网址中有句号.

为了使其工作,请更改您的Web配置以添加以下两个配置:

<configuration>
  <system.web>
    <httpRuntime relaxedUrlToFileSystemMapping="true" />
  </system.web>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)

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


Dar*_*rov 6

Scott Hanselman在这篇博文中介绍了这一点.作为替代方案,您可以将电子邮件作为查询字符串参数传递,而不是作为路径的一部分,因为不允许某些字符.