2015-11-02 94 views
0

鉴于 我有一个当前的MVC网站,但需要添加对非MVC内容的支持。特别是SandCastle帮助文件生成器帮助Web内容的输出。如何将非MVC(html内容)添加到MVC网站?

什么一直试图从S.O.

以下提示我使用Empty Template创建了一个新的MVC网站,只是为了了解它是如何完成的,我创建了HTML网站中的所有文件夹并通过复制文件填充了内容。我确信图片构建行动是内容,复制如果更新。

有在MVC站点中没有控制器,所以我不得不改变Route.Config文件,如下所示:

routes.MapRoute(
name: "Default", 
url: "{controller}/{action}/{id}", 
defaults: new { action = "Index", id = UrlParameter.Optional } 

行动=“指数”解决index.html,然后它填充的所有网页。注意上面的MapRoute中没有控制器。

但图片不显示,我相信这与路由有关。 从每个图像页面加载后的Get看起来是这样的:

Request URL:http://TheSite/media/SomeImage.PNG 

如果媒体是在图像所在的文件夹。

产生这种联系是这个实际的HTTP内容...

../media/TestDrillDown.PNG 

的sites'index.html具有SHFB本声明。

<script type="text/javascript"> 
    window.location.replace("html/1bb0066d-655c-4883-8045-81f006f3adc8.htm") 
</script> 

它在浏览器中重定向到该页面,自动正确显示内容。

URL:http://localhost:50212/html/1bb0066d-655c-4883-8045-81f006f3adc8.htm 

问题 我必须做的就是图像显示和停止显示404(未找到)错误。

什么没有奏效

routes.IgnoreRoute({"{resource}.png"); 
routes.IgnoreRoute({"media/{resource}.png"); 
routes.IgnoreRoute({"../media/{resource}.png"); 
routes.IgnoreRoute({"{resource}.{*png}"); 

回答

0

我是一个假人,当我在PNG图像复制不知何故,我没有让他们所有,一旦做了,并且使用索引上面的配置。 html文件发现它们...这很有趣,这是我的想法...

Index.html页面中的重定向链接到存在于MVC站点中的/ html文件夹,其中没有控制器。/html文件夹中的文件引用了图像“../media/image.png”,该文件对于文件夹结构是正确的。这些图像的返回“获取”作为“/media/image.png”返回,这确实是正确的,因为image.png位于根目录下的媒体文件夹中......所以只需要上面的映射即可。没有忽视的路线和没有控制器....我现在有一个新的问题,但我会发布一个新的问题。谢谢!

1

您可以尝试添加<location>...</location>配置元素为您的媒体文件夹,启用匿名身份验证。像这样的事情在你的web.config:

<location path="media"> 
    <system.web> 
     <authorization> 
      <allow users ="*" /> 
     </authorization> 
    </system.web> 
</location> 
+0

谢谢艾米......我现在才发现问题,看了整整一天后...... –

相关问题