1

当我有这个时:

@using Orchard.Themes.Models
@using Orchard.Themes.Preview
@using Orchard.Themes.Services
@using Orchard.Themes.ViewModels
@{
    Script.Require("OrchardTinyMceDeluxe");
    var pluginsBaseUrl = @Url.Content("~/modules/tinymcedeluxe/scripts/plugins");
    var siteThemeService = WorkContext.Resolve<ISiteThemeService>();
}

我收到此错误:

解析器错误消息:代码块缺少结束“}”字符。确保此块中的所有“{”字符都有一个匹配的“}”字符,并且没有一个“}”字符被解释为标记。

Line 4:  @using Orchard.Themes.Services
Line 5:  @using Orchard.Themes.ViewModels
Line 6:  @{
Line 7:      Script.Require("OrchardTinyMceDeluxe");
Line 8:      var pluginsBaseUrl = @Url.Content("~/modules/tinymcedeluxe/scripts/plugins");

但是,如果我将代码分成两个单独的 C# 块,如下所示,它可以正常工作。为什么?

@{
    Script.Require("OrchardTinyMceDeluxe");
    var pluginsBaseUrl = @Url.Content("~/modules/tinymcedeluxe/scripts/plugins");
}
@{
    var siteThemeService = WorkContext.Resolve<ISiteThemeService>();
}
4

1 回答 1

2

您不应该在 Url.Content 上使用 @,它已经在代码块中。

我认为正在发生的事情是 razor 被 @ 和末尾的分号弄糊涂了,因此将右括号放入 HTML 中。

于 2012-10-14T21:04:21.583 回答