设为首页 加入收藏

TOP

如鹏网学习笔记(十四)ASP.NET(六)
2017-10-11 13:16:12 】 浏览:9499
Tags:学习 笔记 十四 ASP.NET
中Model为服务器程序处理后传递给模板的对象。
      @{}中为C#代码,C#代码可以和html代码混排

    使用方法:
      1,新建一般处理程序,

      2,通过context.server.MapPath()方法,取得.cshtml文件的路径

      3,使用File.ReadAllText()方法,读取.cshtml文件的内容

      4,调用Razor.Parse()方法进行.cshtml文件的动态编译,//Razor.Parse(cshtml,model,"编译的程序集名字"),这样可以避免重复编译,减轻服务器负担

      5,使用context.Response.Write()方法将编译后的.cshtml文件输出
    注意:
      浏览器端是查看.ashx文件

    示例代码:

      string fullPath = context.server.MapPath("~/RazorDemo/Razor1.cshtml");
      string cshtml = File.ReadAllText(fullPath);
      string html = Razor.parse(cshtml);
      context.Response.Write(html);

 

三十九、Razor调用外部方法
  编写一个静态方法,方法返回RawString类型,在.cshtml文件中就可以调用方法进行原样输出
  在CSHTML中@表达式后面输出的会自动进行HttpEncodedString
  HttpEncodedString    进行Http编码后输出
  RawString   进行原样输出

四十、Razor使用常见问题
  1,“无法确定使用哪一版本的ASP.NET Web Pages”
    在web.config文件<configuration>节点下添加

    <appSettings> 
      <add key="webPages:Version" value="2.0"/> 
    </appSettings>

 

  2,model如果传递对象的时候,如果只是传递普通的匿名类对象还可以(ASP.NET MVC 中都不可以)
    

    如果传递集合就不可以,因为匿名类是internal的。最好传递命名对象。
    如果非要传递匿名对象,可以使用newton.json(json.net)最新版9,先序列化为json,再反序列化为dynamic对象
  

    注意:
      取的对象不是原始数据类型了,因此要用foreach遍历,且不能显示转换,
      cshtml使用的时候都用dynamic,cshtml页面顶部要加上@model dynamic(注意大小写)

    示例代码:

      //序列化方法:
      static dynamic ToDynamic(object obj)
      {
        string json = JsonConvert.SerializeObject(obj);
        dynamic dyObj = JsonConvert.DeserializeObject(json);
        return dyObj;
      }

 

  3,关于在VS2015中使用的说明
    需要适合2015版本的Razor模板引擎,会出现错误

首页 上一页 3 4 5 6 下一页 尾页 6/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇今天瞎写的关于XML的一些。 下一篇ASP.NET MVC下Bundle的使用

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目