Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 使用MVC响应具有特定扩展的资源请求_Asp.net Mvc_Html - Fatal编程技术网

Asp.net mvc 使用MVC响应具有特定扩展的资源请求

Asp.net mvc 使用MVC响应具有特定扩展的资源请求,asp.net-mvc,html,Asp.net Mvc,Html,我写了一个基本的范围请求类,我想充实一下,这样html5视频和音频播放器就可以与我的MVC应用程序交互 如果我不将扩展添加到'src'标记中,我就可以让它正常工作(但对于修改后的功能不完全)。事情是在路由上,我无法获得任何带有“{filename}.{extension}”样式路由的字符串。我的猜测是,类似的东西被假定为静态文件,因此我永远没有机会满足请求。如果我添加了一个没有扩展名的源代码,它就会工作 所以这是有效的 <video id="my-video-player" class="

我写了一个基本的范围请求类,我想充实一下,这样html5视频和音频播放器就可以与我的MVC应用程序交互

如果我不将扩展添加到'src'标记中,我就可以让它正常工作(但对于修改后的功能不完全)。事情是在路由上,我无法获得任何带有“{filename}.{extension}”样式路由的字符串。我的猜测是,类似的东西被假定为静态文件,因此我永远没有机会满足请求。如果我添加了一个没有扩展名的源代码,它就会工作

所以这是有效的

<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,这是有意义的。谢谢