我正在使用RazorGenerator https://github.com/RazorGenerator/RazorGenerator将菜单外包给DLL文件,以便可以在多个项目中共享它。在这些视图中,我有一个foreach循环,该循环应生成如下列表:
@foreach (var myItem in MyClass.Instance.Elements) {
<li>
<img src="@myItem.Icon" />
</li>
}
但是我无法编译它们:RazorGenerator生成的MyView.genic.cs文件正在为img标签创建以下行:
WriteAttribute("src", Tuple.Create(" src=\"", 1038), Tuple.Create("\"", 1057)
这是问题所在,因为我收到未定义“ WriteAttribute”的错误。我找不到有关此方法的许多信息,似乎这是RazorGenerator提供的方法。
奇怪的是,我之前在测试项目中测试了相同的代码,因为这是我第一次使用RazorGenerator。在那里,它具有相同的循环,但我找不到任何差异。两个项目在相同版本中都具有相同的引用和程序集。我只发现WriteAttribute()来自WebPageExecutionBase。
我该如何解决该问题?
最佳答案
通过检查两个项目中的每个软件包,我发现NuGet-Package Microsoft.ASP.NET.WebPages已安装在过期版本中。无法弄清原因,因为我像在测试项目中一样在项目的NuGet-Manager中使用了“更新所有”按钮,并且没有显示任何错误。我在撰写本文时使用NuGet-Console将软件包更新为最新版本,即3.1.2。
关于c# - 未定义ASP.NET RazorGenerator“WriteAttribute”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31413290/