问题描述
是否可以使用URL的控制器/视图:
Is it possible to have controller/view for URL:
http://mydomain/SomeFolder/
和一个类似的物理文件夹将文件放入其中
And a similar physical folder to put files in it
http://mydomain/SomeFolder/*.*
当前的URL http://mydomain/SomeFolder/
,仅在web.config允许的情况下返回浏览的物理文件夹,但我希望它返回视图,而http://mydomain/SomeFolder/*.*
则返回包含在该文件夹中的文件.
Currently URL http://mydomain/SomeFolder/
, only returns the physical folder is browsed if web.config allows it, but I would like it to return the view and http://mydomain/SomeFolder/*.*
to return the files contained in the folder.
推荐答案
这是我找到的解决方案,但我希望找到一些更简单的方法.
Here's the solution I found, I whish I had found some simpler way though.
使用此解决方案,我仍然无法将文件放在http://mydomain/SomeFolder/
的物理路径中,该文件夹在物理上不能存在,否则控制器/视图无法正常工作.但是它将实现的是http://mydomain/SomeFolder/SomeFile.zip
返回与http://mydomain/**Content**/SomeFolder/SomeFile.zip
相同的文件,这是我的主要目标.
With this solution I still cannot put files in the physical path of http://mydomain/SomeFolder/
, this folder cannot exist physically otherwise the controller/view doesn't work.But what it will achieve is that http://mydomain/SomeFolder/SomeFile.zip
returns the same file as http://mydomain/**Content**/SomeFolder/SomeFile.zip
, which was my main goal.
我需要为http://mydomain/SomeFolder/
和http://mydomain/SomeFolder/anything/file/etc
routes.MapRoute(
"SomeFolder",
"SomeFolder",
new { controller = "SomeFolder", action = "Index" }
);
routes.MapRoute(
"SomeFolderSub",
"SomeFolder/{*any}",
new { controller = "TryDownloadFile", action = "Index" }
);
routes.RouteExistingFiles
仍然是false
.
然后我有SomeFolderController
可以返回SomeFolder的视图.然后TryDownloadFileController
检查文件是否在http://mydomain/Content/SomeFolder/
而不是http://mydomain/SomeFolder/
中并返回文件.
Then I have SomeFolderController
that return SomeFolder's view.And TryDownloadFileController
that checks if the file exists in http://mydomain/Content/SomeFolder/
instead of http://mydomain/SomeFolder/
and returns it.
(我想如果文件不存在,它应该返回一些404响应.应该是return this.HttpNotFound();
)
(I guess if the file doesn't exist it should return some 404 response. Which would be return this.HttpNotFound();
)
这篇关于.NET MVC-控制器/视图和物理路径?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!