Razor语法总结
- @就是C#,
<a></a>
就是HTML - 如果想让被识别成HTML的当成C#那就用
@()
- 如果想让被识别成C#的当成HTML,用
<span>
等标签,如果不想生成额外的标签,就用<text></text>
- 如果不想对内容htmlencode显示就用
@Html.Raw
- 属性的值如果是以“~/”开头会进行虚拟路径处理
- 属性值如果是bool类型,如果是false就不会输出这个属性,如果true就输出“属性名=属性名”
<input type="type" checked="@b1"/>
Razor最后会变成什么
cshtml是编译生成一个动态的程序集;在cshtml中写@this.GetType().Assembly.Location 可以拿到编译生成的程序集 dll 文件的路径,反编译可以看到cshtml最终会生成一个类,类中就是在拼接html;类是继承自WebViewPage,后续用的@Model、@Html等都是WebViewPage类的成员。
尽可能维持View的简单,不要在View中写业务逻辑以及过去复杂的代码;