我试图让工作的URL是以下风格的网址:http://somedomain.com/api/people/staff.33311(就像网站一样,LAST.FM允许在他们的RESTFul和WebPage网址中添加所有类型的标记例如," http://www.last.fm/artist/psy'aviah "是LAST.FM的有效网址.
以下方案有效: - http://somedomain.com/api/people/ - 返回所有人 - http://somedomain.com/api/people/staff33311 - 也可以,但不是我的意思在我希望网址接受"点"后,就像下面的示例 - http://somedomain.com/api/people/staff.33311 - 但这给了我一个
HTTP Error 404.0 - Not Found
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.
Run Code Online (Sandbox Code Playgroud)
我已经设置了以下内容:
控制器"PeopleController"
public IEnumerable<Person> GetAllPeople()
{
return _people;
}
public IHttpActionResult GetPerson(string id)
{
var person = _people.FirstOrDefault(p => p.Id.ToLower().Equals(id.ToLower()));
if (person == null)
return NotFound();
return Ok(person);
}
Run Code Online (Sandbox Code Playgroud)WebApiConfig.cs
public static void Register(HttpConfiguration config)
{
// …Run Code Online (Sandbox Code Playgroud)c# asp.net-mvc-routing asp.net-mvc-4 asp.net-web-api asp.net-web-api2
我的应用程序生成PDF供用户使用.在"内容处置" HTTP标头设置为提到这里.这被设置为"inline; filename = foo.pdf",这对于Acrobat来说应该足以在保存pdf时将"foo.pdf"作为文件名.
但是,单击嵌入浏览器的Acrobat中的"保存"按钮后,要保存的默认名称不是该文件名,而是带有斜杠的URL更改为下划线.巨大而丑陋.有没有办法在Adobe中影响这个默认文件名?
URL中有一个查询字符串,这是不可协商的.这可能很重要,但在URL的末尾添加"&foo =/title.pdf"不会影响默认文件名.
更新2:我试过了两个
content-disposition inline; filename=foo.pdf
Content-Type application/pdf; filename=foo.pdf
Run Code Online (Sandbox Code Playgroud)
和
content-disposition inline; filename=foo.pdf
Content-Type application/pdf; name=foo.pdf
Run Code Online (Sandbox Code Playgroud)
(通过Firebug验证)可悲的是,都没有奏效.
一个示例网址是
/bar/sessions/958d8a22-0/views/1493881172/export?format=application/pdf&no-attachment=true
转换为默认的Acrobat保存为文件名
http___localhost_bar_sessions_958d8a22-0_views_1493881172_export_format=application_pdf&no-attachment=true.pdf
更新3:Julian Reschke为这种情况带来了实际的洞察力和严谨性.请提出他的回答.这似乎在FF(https://bugzilla.mozilla.org/show_bug.cgi?id=433613)和IE中被打破,但在Opera,Safari和Chrome中工作.http://greenbytes.de/tech/tc2231/#inlwithasciifilenamepdf