Razor代码块内的括号

时间:2015-08-04 17:20:26

标签: c# asp.net-mvc razor

尝试在包含参数创建的View顶部的Razor ASP.Net MVC代码块中放置一个URL.Action调用 - 它不会解析并导致页面出错。 看到类似的问题,他们删除“@”,但我已经尝试过。 我正在使用一个针对jpg url的Action,因为它指向一个重写器。

代码位于页面顶部:

@{
    ViewBag.Title = @Model.event_title + " - Event - HOTSHOE";
    ViewBag.MetaDescription = @Model.event_title + " - HOTSHOE";
    Layout = "~/Views/Shared/_Hotshoe.cshtml";
    ViewBag.MainImage = Url.Action("thumbnail", "Events" , new { id=Model.event_ID }) + "/imagename.jpg";
}

有问题的一行是

ViewBag.MainImage = Url.Action("thumbnail", "Events" , new { id=Model.event_ID }) + "/imagename.jpg";

在编辑器中抱怨

  

语法错误,','预期

在Model.event_ID之后但在“}”之前。

此代码适用于代码块之外的页面的另一部分,@ Url.Action和@ Model.event_ID

前面的@

查看页面时会抱怨:

  

编译器错误消息:CS1513:}预期

     

来源错误:

     

第7476行:}第7477行:}第7478行:}

有什么想法吗? TIA。

1 个答案:

答案 0 :(得分:1)

嗯,我没有发现为什么它不起作用,但是......

<强>解决方案

@{
    ViewBag.Title = @Model.event_title + " - Event - HOTSHOE";
    ViewBag.MetaDescription = @Model.event_title + " - HOTSHOE";
    Layout = "~/Views/Shared/_Hotshoe.cshtml";
}

@(ViewBag.MainImage = Url.Action("thumbnail", "Events" , new { id=Model.event_ID }) + "/imagename.jpg";)

修改

好的,我发现了问题。

ViewBag.Title = @Model.event_title + " - Event - HOTSHOE";
ViewBag.MetaDescription = @Model.event_title + " - HOTSHOE";

@

中删除@Model.event_title