asp.net mvc 用自定义的RazorViewEngine实现主题的自由切换遇到的问题!

这个问题纠结了我好几天了,虽然没彻底明白,只是稍有所进展,记录下,如果有能详细解答的请不吝赐教。

开篇: 熟悉mvc的同学都明白controller以及里面的action会默认对应views里面的文件,从而把controller里面的内容传递到页面,展示到浏览器上。如下图就是一个原始的mvc3项目里默认的Views里的结构

 

如果我们想做另一套风格的页面主题,并且能够实现跟上面自带的这套风格自由切换,简单理解就是仿照Views下面的目录结构再做与其并列的一套。如下所是目录结构:

我们在Views下添加了Themes文件,下面分为default与green,default里面是原来的文件,green里面是我们自己写的另外一套风格的文件。

接下来就用到本文标题写的RazorViewEngine类了,继承RazorViewEngine类去自定义试图引擎来实现default与green这两套主题的切换。(具体的操作到园子里找找吧,有很多文章写过了,我不啰嗦了,下面主要是写我自己遇到的问题)

问题: 在default与green里面我放了Content,用来写css文件与js文件,因为两个主题所用的不一样,放在这里分开调用也是最直观的解决方式了。但是问题出现了,通过自定义的视图引擎能够顺利切换default与green加载里面的Account、Home、Shared文件夹,但是当里面的页面link标签加载Content文件夹下的样式时会出现404。

在chrome F12的调试窗口中,请求Content中的文件后的status是canceled。

查了很多资料仍没有满意的接到,有一个回答说是跨站访问的原因,总是还是一头雾水。

不过尝试了很多次总算发现Content文件夹放置的位置不对!只要把他拿出来便能顺利调用了。

最后我在项目根目录下放Conent,在里面分别建立default与green来区分不同的样式文件,这样总算能完成主题的自由切换功能了。

功能是完成了,但为什么Content不能放在视图引擎管理的Views下还是很不解 *_*

转载于:https://www.cnblogs.com/zhangran/archive/2013/05/14/3077197.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值