Tag: razorgenerator

打印和/或修改razor编译器服务用于编译cshtml的c#版本

我希望能够找出razor用来编译我的cshtml模板的C#版本。 我想要这个的原因是这个突破性的变化 。 我们在foreach语句中有一个lambda,它在我们的本地开发机器上工作正常但在我们的测试环境中产生了一个错误(没有安装C#5)。 这个错误非常难以调试(我们甚至复制了所有测试环境DLL和数据库,但仍然无法重现该错误)。 因此,为了防止将来这种开发/测试的差异,我想知道是否有一种方法来指定razor应该用来编译cshtml文件的C#版本。 如果我能检查剃刀使用的C#版本(通过打印它)也会很好。 更新:根据要求,有关此行为如何发生的更多详细信息。 我们使用devexpress mvc网格在我们的剃刀视图中显示数据。 要以动态方式添加列,我们循环(foreach)一个列表,该列表在datagrid中插入列(使用lambda)。 一个简化的例子: @Html.DevExpress().GridView( settings => { settings.Name = “gvDashboard”; //Some more settings settings.Columns.Add(column => { column.FieldName = Model.DashboardItems.PropertyName(p => p.Id); column.Caption = “Id”; //Some more column settings }); foreach (var extraColumnLoopVar in Model.ExtraColumns) { //We added this to solve the problem var extraColumn = extraColumnLoopVar; […]

RazorGenerator无法看到自定义的cshtml帮助器

我遇到了RazorGenerator的问题:它无法编译使用我的自定义助手的视图: App_Code文件/ ViewHelper.cshtml @helper test(System.Web.Mvc.HtmlHelper html) { Test } 查看/ Test.cshtml (…) @ViewHelper.test(this.Html) (…) 当我尝试编译我的项目时,我得到Test.cshtml的这个错误: “ViewHelpers”这个名称在当前上下文中不存在 我尝试将各种命名空间添加到我的Views / web.config文件中: 但没有成功…… 我错过了一些应该包含在这个文件中的命名空间吗? 如果没有,是否还有其他方法可以让RazorGenerator编译视图? 此外,cshtml助手甚至存在于命名空间中吗?

RazorGenerator,模板和@Html

我正在尝试使用RazorGenerator作为电子邮件模板引擎。 我想用数据模型,组装正确的部分视图集,并返回我可以通过电子邮件发送的HTML。 编辑:除了这个工作流程,任何解决方案都需要编辑为.cshtml文件,并能够编译成一个DLL 。 由于各种原因,自行部署cshtml文件是不切实际的 – 如果我们无法将所有剃刀视图嵌入到单个文件中,那么我们就无法使用该建议。 因此RazorGenerator。 到目前为止,我已经计算出它的每个部分,除了部分。 当我尝试在模板文件中使用@ Html.Partial()时,我得到: The name ‘Html’ does not exist in the current context 。 基于这个答案 ,我知道默认情况下@Html不是Razor的一部分,关于如何在控制器中创建HtmlHelper有很多答案。 但是,我需要在模板中创建一个模板,该模板没有我需要遵循这些示例的ControllerContext 。 我也尝试过使用@Include,但是RazorGenerator模板似乎不支持。 编辑:我还尝试创建一个inheritance自TemplateBase的新类,并复制了RazorTemplateBase所有function,但我在@Include行上得到了NullReferenceException 。 所以,我的主要问题是:是否有更好的方法将另一个Razor文件(带模型)包含到我的文件中? 其次,如果没有更好的方法,我怎样才能创建HtmlHelper? 编辑赏金:重申一下,在可接受的答案中我需要的四件事是: 使用标准编辑器编辑.cshtml文件的能力(不“将其存储为字符串”等) 能够将所有内容编译成单个dll,可以使用我们当前的构建系统进行部署(我们无法部署大量单独的.cshtml) 能够从另一个引用一个.cshtml文件,并传递一个模型 – 相当于@Includes或@Html.Partial (如果它们工作的话,其中任何一个都是完全可以接受的) 使用附件通过电子邮件发送结果的function。 (如果结果是字符串或可以转换为一个字符串,我已经有了这个代码。) 我目前可以获得其中三种组合的大多数组合,但我不能同时获得所有四种组合。 我愿意接受新的库,取代RazorGenerator,或者抛弃我已有的任何部分,只要结果能够按需要运行。