问题标签 [razorengine]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
460 浏览

c# - Mono 上的 RazorEngine - 抛出 TemplateCompilationException

我的 Linux 机器上运行着 Mono 3.3.0。我正在尝试使用 RazorEngine 3.3.0(来自 NuGet)。

不幸的是,它现在抛出了这个异常

System.Exception:无法编译模板。预定义类型 System.Collections.Generic.IReadOnlyList' is defined multiple times. Using definition frommscorlib.dll'

但是,该代码在我的 Windows 机器上运行良好。我是否遗漏了一些明显的东西,或者这根本不适用于 Mono?

[编辑]

我刚刚在异常的“错误”属性中找到了这些信息。

{'Line': '0', 'Column': '0', 'ErrorNumber': 'CS1685', 'IsWarning': 'True', 'ErrorText': '预定义类型 System.Collections.Generic.IReadOnlyList' is defined multiple times. Using definition frommscorlib.dll'', 'Filename' : ''} {'Line': '0', 'Column': '0', 'ErrorNumber': '', 'IsWarning': 'False', 'ErrorText': '/usr/lib/mono/4.5/ mscorlib.dll(与先前警告相关的符号位置)','文件名':''} {'Line':'0','Column':'0','ErrorNumber':'','IsWarning': '假','ErrorText':' /usr/lib/mono/gac/fastcgi-mono-server4/3.0.0.0_0738eb9f132ed756/fastcgi-mono-server4。 exe(与先前警告相关的符号位置)','文件名':''} {'Line':'0','Column':'0','ErrorNumber':'CS1685','IsWarning':' True', 'ErrorText': '预定义的类型System.Collections.Generic.IReadOnlyCollection' is defined multiple times. Using definition frommscorlib.dll'','文件名':''} {'行':'0','列':'0','ErrorNumber':'','IsWarning':'False','ErrorText':' /usr/lib/mono/4.5/mscorlib.dll(与先前警告相关的符号位置)','文件名':''} {'行':'0','列':'0','ErrorNumber ': '', 'IsWarning': 'False', 'ErrorText': '/usr/lib/mono/gac/fastcgi-mono-server4/3.0.0.0 _0738eb9f132ed756/fastcgi-mono-server4.exe(符号的位置与之前的警告有关)','文件名':''}

0 投票
0 回答
338 浏览

asp.net-mvc - 如何使用 MiniProfiler 确定 ASP MVC Razor 配置文件

我的 ASP MVC 4 Web 应用程序中有一些视图需要几秒钟才能呈现。我已经安装了 MiniProfiler 来分析控制器和 Razor 视图。在我的一种观点中,我看到了以下结果:

倒数第二行显示渲染 Details Razor 视图需要 1015 毫秒。其中使用的部分耗时 2.6 秒,还有其他部分,但它们甚至低于 1 毫秒。

如何进一步调查需要 1 秒以上的渲染时间?

0 投票
2 回答
1011 浏览

asp.net-mvc - 如何制作我自己的 Razor Helper 方法,例如 @Html.TextBoxFor()?

我想实现类似于@Html.TextBoxFor 的东西,而是调用@Html.SwitchFor() 从我正在使用的布尔创建一个是/否开关,而不必每次都添加额外的html和类。

有没有办法用剃刀语法做到这一点?

0 投票
2 回答
1995 浏览

c# - #pragma 警告禁用,在 Razor 语法中,但仅适用于 catch 语句

我想禁用我的 catch 语句的警告,但只禁用 catch 语句!与 .cs 文件中的方式相同!

重要的!:我不想删除SystemException e参数!我的具体要求专门抑制使用Razor语法的 catch 语句的警告。与在没有剃刀的 .cs 文件中的工作方式相同。

初始情况:

我得到:
在此处输入图像描述变量'e'已声明但从未使用过

a)如果我将pragma语句放在 周围catch,我会收到以下错误:

在此处输入图像描述错误11 只有assignment、call、increment、decrement、await和new对象表达式可以作为语句使用_Header.cshtml 72 13

@b)如果我在块之前放了一个 Razor- <div>,我会收到以下错误:

在此处输入图像描述错误 5 ; 预期 _Header.cshtml 1 1

c)如果我;在块之后放一个<div>,看起来还可以,但是在加载站点时我得到以下编译错误:

编译错误:

0 投票
1 回答
127 浏览

asp.net-mvc-4 - 如何在 MVC 4 中使用相应的布尔值(即)选中或未选中来呈现编辑器窗口中的复选框 ..?

模型:公共部分类 TBLAppUser { public bool isActive { get; 放; } }

查看:@Html.CheckBoxFor(u => u.useredit.isActive)

0 投票
1 回答
1890 浏览

javascript - 如何在 MVC-4 的编辑模式弹出窗口中获取复选框

我正在使用 ajax 在模式弹出窗口中获取相应的行值,以便在 MVC 4 razor 中进行编辑。对于用户名文本框,我得到这样的结果...

如果我对复选框使用相同的方法..

我得到了普通的复选框。我哪里出错了..或者有没有其他方法可以使用复选框,,

控制器:用于通过 ajax 获取值

javascript:

视图.cshtml:

我在编辑弹出窗口中得到了未选中的复选框..请提前帮帮我..谢谢...

0 投票
0 回答
807 浏览

c# - NUnit:公共语言运行时检测到无效程序

在 TeamCity 中运行 NUnit 测试时,我不断收到以下错误。

我在代码中找到了一些与非常长的方法相关的答案,但它们似乎并不相关。有任何想法吗?

0 投票
3 回答
2963 浏览

c# - RazorEngine @Html 助手工作,但逃避 Html

我正在使用 RazorEngine 从网页上的 html 片段中解析模板。(这是一个遗留系统,无法切换到 Mvc Razor 视图,因此我们将小部分切换为在有意义的情况下使用 RazorEngine)。SO和互联网上有很多问题试图让Mvc的Html和Url助手与Razor引擎一起工作。为了使@Html语法正常工作,我修改了此处找到的一些代码,以将 Html 添加到基本模板中:

在对 Html 源代码进行大量调试后,我想我已经设法实例化 Html 帮助程序所需的所有内容,并且它成功运行@Html.Label......问题是生成的 html 是:

当它显然应该是:

我很困惑如何解决这个问题。查看 RazorEngine 源时,我无法找到编码是如何发生的。我最初的想法是 TextWriter 必须对值进行编码,但我无法确认这一点。我怎样才能@Html.BlahFor()呈现未转义的 html?

0 投票
2 回答
61 浏览

jquery - 我在使用 html 助手时遇到问题,为什么它不起作用?

我有一个 viewModel,它有一个名为 COESNo. 的字段。

当我尝试像这样在视图中编写它时

然后尝试稍后使用 Jquery $("#COESNo).val() 访问它,它说它是空的

但如果我执行以下操作

我可以从 Jquery 中获取值。为什么在使用 hiddenfor 时将值设置为空?

谢谢

0 投票
1 回答
606 浏览

c# - CompilerParameters.GenerateInMemory = 错误的性能问题

我正在使用RazorEngine解析应用程序中的 html 模板,并且正在编写一些 NUnit 测试来分析性能区域并调查潜在问题。似乎在指定时GenerateInMemory = false,我的代码受到了巨大的性能影响。

在 NUnit 中运行每个测试时,在 CompileAssemblyFromDom() 方法中花费的总滴答数如下:

对于一些磁盘 IO 的附加成本,这比我预期的要极端得多。此外,这一次似乎与测试的大小呈非线性关系。例如,当我运行 200 次迭代而不是 1000 次(在内存中 = false)的测试时,结果是 118M 滴答,标准化为 1000 次测试迭代是 591M 滴答。这比加载到内存中的相应测试略大,但仍然比全尺寸测试最终完成时的实际性能低一个数量级(我以为它挂了,但是在写这个问题时完成了)。

在保存大量动态程序集时,是否有任何理由对性能产生如此巨大的影响?

测试代码:

和 GetHtmlFromTemplate() 代码:

这里发生了一堆不相关的代码,最终我们到达了问题区域,也就是 CodeDomProvider 用于编译代码的地方:

TLDR:CompileAssemblyFromDom()将少量程序集(<200)保存到磁盘时该方法的性能比加载到内存要差,但是当数量增加(~500-1000)时,性能会差几个数量级?是什么导致了这种奇怪的行为?