Asp.net mvc 使用MVC响应具有特定扩展的资源请求
我写了一个基本的范围请求类,我想充实一下,这样html5视频和音频播放器就可以与我的MVC应用程序交互 如果我不将扩展添加到'src'标记中,我就可以让它正常工作(但对于修改后的功能不完全)。事情是在路由上,我无法获得任何带有“{filename}.{extension}”样式路由的字符串。我的猜测是,类似的东西被假定为静态文件,因此我永远没有机会满足请求。如果我添加了一个没有扩展名的源代码,它就会工作 所以这是有效的Asp.net mvc 使用MVC响应具有特定扩展的资源请求,asp.net-mvc,html,Asp.net Mvc,Html,我写了一个基本的范围请求类,我想充实一下,这样html5视频和音频播放器就可以与我的MVC应用程序交互 如果我不将扩展添加到'src'标记中,我就可以让它正常工作(但对于修改后的功能不完全)。事情是在路由上,我无法获得任何带有“{filename}.{extension}”样式路由的字符串。我的猜测是,类似的东西被假定为静态文件,因此我永远没有机会满足请求。如果我添加了一个没有扩展名的源代码,它就会工作 所以这是有效的 <video id="my-video-player" class="
<video id="my-video-player" class="video-js" controls preload="auto" width="640" height="264" src="@Url.Action("Index","Video",new { id = "SampleVideo_1280x720_20mb" })" type="video/mp4">
<p class="vjs-no-js">
To view this video please enable JavaScript, and consider upgrading to a web browser that
<a href="http://videojs.com/html5-video-support/" target="_blank">supports HTML5 video</a>
</p>
</video>
若要查看此视频,请启用JavaScript,并考虑升级到Web浏览器
但事实并非如此
<video id="my-video-player" class="video-js" controls preload="auto" width="640" height="264" src="@Url.Action("Index","Video",new { id = "SampleVideo_1280x720_20mb.mp4" })" type="video/mp4">
<p class="vjs-no-js">
To view this video please enable JavaScript, and consider upgrading to a web browser that
<a href="http://videojs.com/html5-video-support/" target="_blank">supports HTML5 video</a>
</p>
</video>
若要查看此视频,请启用JavaScript,并考虑升级到Web浏览器
有人知道我如何使某些扩展可能重新路由到我选择的处理程序吗
编辑:
下面链接的是一个方法,可以使它在一条路径上工作,理想情况下,我想注入它,这样我就可以在任何路径上执行它,所以我想保持它打开,看看是否有人有更多的洞察力。因为这种方法仍然需要有一个IgnorePath,以确保媒体文件的任何直接路径都不会由静态文件处理程序而不是MVC路径处理
<system.webServer>
<handlers>
<add name="Media-Handler" path="/Video/*" verb="GET" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0"/>
</handlers>
</system.webServer>
我已设法使其工作,但最好是插入一个处理程序,以便处理任何视频或音频请求,无论路径位置如何。我认为一个工作不一定是一个完整的解决方案。正如链接所暗示的,你需要添加额外的<代码> TraseReqththand程序> <代码> s,以便IIS接受<代码> .<代码>。在您的情况下,最简单的方法是添加一个路径为*.mp4
的文件,该路径将处理具有该扩展名的所有文件,而不管它们的物理位置如何。Hm,这是有意义的。谢谢