W********n 发帖数: 254 | 1 最近遇到一个有意思的问题:如何让razor view engine可以渲染.htm 或者.html的文
件。razor有一个强制的文件后缀检查,要求文件必须是.cshtml,.vbhtml,aspx。今天
用了一个很怪的workaround搞定了。。就是弄了一个virtual path provider,当razor
请求特定virtual目录下的文件时,让razor以为在访问.cshtml,现在work的还不错,
但是感觉很怪很怪。。不知道有没有别的方法来解决?
stackoverflow上说可以添加buildprovider,但我怎么试也不好用。 | k**n 发帖数: 3989 | | s***o 发帖数: 2191 | 3 not sure why you want .html files, which contain static content, to go
through view engine. If you just want to keep cleaner URL, using something
like Response.WriteFile, Server.Transfer, etc in an action method may be an
easier hack. | W********n 发帖数: 254 | 4 是这样。。。business用户希望可以自己更改layout page并且上传,他们不想所有的
UI改动都要通过dev team。business用户当然不会使用什么razor/cshtml,只会上传.
htm的文件。上传以后的layout文件还要通过razor来包含我的view/partial view等等。
上传的Layout文件,我尽量不想去rename,因为以后会有一个后台程序可以管理这些
layout,在线更改,下载之类的。。
【在 k**n 的大作中提到】 : 为什么要这样? : 你明明不是纯html格式啊。
| W********n 发帖数: 254 | 5 既然mvc里请求动态内容全是controller来处理,没有传统页面的概念,那razor又何须
检查文件后缀呢?如果只是为了intellisense,可以通过别的方式实现吧。。例如那个
views目录下的web.config。
这样的话,razor完全可以变成一个更通用的template engine。
an
【在 s***o 的大作中提到】 : not sure why you want .html files, which contain static content, to go : through view engine. If you just want to keep cleaner URL, using something : like Response.WriteFile, Server.Transfer, etc in an action method may be an : easier hack.
| c**t 发帖数: 2744 | 6 你们需要的是一个CMS,DotnetNuke,SiteCore都能满足你们的要求
等。
【在 W********n 的大作中提到】 : 是这样。。。business用户希望可以自己更改layout page并且上传,他们不想所有的 : UI改动都要通过dev team。business用户当然不会使用什么razor/cshtml,只会上传. : htm的文件。上传以后的layout文件还要通过razor来包含我的view/partial view等等。 : 上传的Layout文件,我尽量不想去rename,因为以后会有一个后台程序可以管理这些 : layout,在线更改,下载之类的。。
| s***o 发帖数: 2191 | 7 Multiple view engines can co-exist. File extensions are used to determine
which view engine to pick up - Razor for .cshtml, WebForms for .aspx, Spark
for .spark, etc.
For .html files, IIS is supposed to deliver its content directly. But in
your case, I guess there are some Razor specific syntax in those .html files
, such as @RenderBody...One idea is to write and register your own view
engine. Ideally you can extend Razor by just overriding whatever are related
.
If I remember correctly, Steve Sanderson has a sample in his MVC book for
handling .xml files.
【在 W********n 的大作中提到】 : 既然mvc里请求动态内容全是controller来处理,没有传统页面的概念,那razor又何须 : 检查文件后缀呢?如果只是为了intellisense,可以通过别的方式实现吧。。例如那个 : views目录下的web.config。 : 这样的话,razor完全可以变成一个更通用的template engine。 : : an
| k**n 发帖数: 3989 | 8 以前mvc2时,webform与mvc混用的话,aspx必须放在content里,与纯html与css等在一
起。。mvc3还不知道咋处理的。 |
|