zoukankan      html  css  js  c++  java
  • 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下还是很不解 *_*

  • 相关阅读:
    python学习随笔--string[:]
    年少时读不懂 天龙八部,如今读懂已过少年
    web安全测试随笔
    纪录jmeter loop controller 使用中的一个坑
    移动设备覆盖统计数据源
    jmeter and postman
    web测试----http状态码
    转自莫某的java学习计划
    jquery实现页面加载时删除特定class 的div内前三个字符
    js学习
  • 原文地址:https://www.cnblogs.com/zhangran/p/3077197.html
Copyright © 2011-2022 走看看