NancyFX 1.4.4 Razor视图中@Each等指令编译失败如何解决?
问题解决方案
核心问题:你混淆了Nancy的两种视图引擎语法——@Each/@Current/@EndEach是Super Simple View Engine(SSVE)的专属指令,但你的视图用的是Razor引擎(.cshtml后缀),Razor不识别这些关键字,所以编译报错。
正确的Razor循环写法
把你原来的SSVE风格代码替换成Razor的foreach语法即可:
@foreach (var thing in Model.Things) { <option value="@thing.Property1">blah</option> }
额外说明
- 你测试的
alert("@Model.Things");能正常输出,是因为Razor正确解析了@Model对象,只是循环部分误用了其他引擎的语法。 - 如果确实想使用SSVE的
@Each等指令,需要将视图文件的后缀改为.sshtml,Nancy会自动使用SSVE处理该文件(前提是项目中已引入SSVE的相关依赖)。
内容的提问来源于stack exchange,提问作者clairestreb
相关产品推荐
相关产品推荐

