我正在使用RazorGenerator https://github.com/RazorGenerator/RazorGenerator将我的菜单外包给一个DLL文件,这样我就可以在多个项目之间共享它。在这些视图中,我有一个foreach循环,它应该生成一个如下所示的列表:
@foreach (var myItem in MyClass.Instance.Elements) {
<li>
<img src="@myItem.Icon" />
</li>
}但是我无法编译它们:由RazorGenerator生成的MyView.generated.cs文件为img标记创建了以下行:
WriteAttribute("src", Tuple.Create(" src=\"", 1038), Tuple.Create("\"", 1057)这就是问题所在,因为我得到了一个错误,没有定义'WriteAttribute‘。我找不到很多关于这个方法的信息,似乎这是一个来自RazorGenerator的方法。
奇怪的是,我之前在测试项目中测试了相同的代码,因为这是我第一次使用RazorGenerator。在那里,它使用相同的循环工作,但我找不到任何差异。这两个项目在同一版本中也有相同的引用和程序集。我只是发现WriteAttribute()来自WebPageExecutionBase。
我如何解决这个问题?
发布于 2015-07-15 04:31:28
通过检查两个项目中的每个包,我发现NuGet-Package Microsoft.ASP.NET.WebPages安装在一个过时的版本中。我找不到原因,因为我在项目的NuGet-Manager中使用了"Update all“按钮,就像在测试项目中一样,并且没有显示任何错误。我使用NuGet-Console将包更新到了最新版本,在我写这篇文章的时候是3.1.2,现在它像预期的那样工作。
发布于 2015-08-11 23:57:27
不要按照上面的建议将Build Action设置为none,因为您的本地副本不会生成正确的generated.cs文件。
https://stackoverflow.com/questions/31413290
复制相似问题