Asp.net mvc 4 Spark View引擎中的C代码块?

Asp.net mvc 4 Spark View引擎中的C代码块?,asp.net-mvc-4,spark-view-engine,Asp.net Mvc 4,Spark View Engine,Spark View引擎能否像Razor一样处理C代码块?例如,我在Razor中有以下内容: @{ var currentController = ViewContext.RouteData.Values["controller"] as string ?? "Home"; var currentAction = ViewContext.RouteData.Values["action"] as string ?? "Index"; var currentPage = (cur

Spark View引擎能否像Razor一样处理C代码块?例如,我在Razor中有以下内容:

@{
   var currentController = ViewContext.RouteData.Values["controller"] as string ?? "Home";
   var currentAction = ViewContext.RouteData.Values["action"] as string ?? "Index";
   var currentPage = (currentController + "-" + currentAction ).ToLower();
}
在Spark View引擎中会有什么类似的功能?然后我在Razor中使用这样的代码,我想在Spark中也这样做

<li @(currentPage == "home-index" ? "class = current" : "")>
    @Html.ActionLink("Home", "Index", "Home")
</li>

@ActionLink(“主页”、“索引”、“主页”)

使用
#
指示行仅为代码,因此:

# var currentController = ViewContext.RouteData.Values["controller"] as string ?? "Home";
# var currentAction = ViewContext.RouteData.Values["action"] as string ?? "Index";
# var currentPage = (currentController + "-" + currentAction ).ToLower();
此外,如果您所做的只是声明变量,那么您可以只执行以下操作:

<var currentController="ViewContext.RouteData.Values['controller'] as string ?? 'Home'" />

您的用法如下所示:

<li class="current?{currentPage == "home-index"}">
    ${Html.ActionLink("Home", "Index", "Home")}
</li>
  • ${Html.ActionLink(“主页”、“索引”、“主页”)}
  • 使用
    #
    指示行仅为代码,因此:

    # var currentController = ViewContext.RouteData.Values["controller"] as string ?? "Home";
    # var currentAction = ViewContext.RouteData.Values["action"] as string ?? "Index";
    # var currentPage = (currentController + "-" + currentAction ).ToLower();
    
    此外,如果您所做的只是声明变量,那么您可以只执行以下操作:

    <var currentController="ViewContext.RouteData.Values['controller'] as string ?? 'Home'" />
    
    
    
    您的用法如下所示:

    <li class="current?{currentPage == "home-index"}">
        ${Html.ActionLink("Home", "Index", "Home")}
    </li>
    
  • ${Html.ActionLink(“主页”、“索引”、“主页”)}

  • 我还主张将这些变量放入基本控制器或全局筛选器中的ViewData中,以便它们对任何视图都可用。我遵循了您的第一个建议,但我得到了一个错误:“currentController”名称在当前上下文中不存在:(Q也更新了。嗯。它对我来说工作得很好。在您收到的错误消息中,视图的完整源应该在消息中。检查源代码,看看您是否可以找到变量的使用位置和声明位置。抱歉,我的错,我错过了
    currentController
    :)上的关键字
    var
    )标记为答案的。谢谢Dave,#语法非常适合将HTML助手(例如
    ${HTML.MvcSiteMap().SiteMapPath(“CustomTemplate”)}
    )调用包装到
    try{…}catch(异常e){…}
    block。我还主张将这些变量放入基本控制器或全局筛选器中的ViewData中,以便它们对任何视图都可用。我遵循了您的第一个建议,但我得到了一个错误:“currentController”名称在当前上下文中不存在:(Q也更新了。嗯。它对我来说工作得很好。在您收到的错误消息中,视图的完整源应该在消息中。检查源代码,看看您是否可以找到变量的使用位置和声明位置。抱歉,我的错,我错过了
    currentController
    :)上的关键字
    var
    )标记为答案的。谢谢Dave,#语法非常适合将HTML助手(例如
    ${HTML.MvcSiteMap().SiteMapPath(“CustomTemplate”)}
    )调用包装到
    try{…}catch(异常e){…}
    块中。