Asp.net mvc 4 Spark View引擎中的C代码块?
Spark View引擎能否像Razor一样处理C代码块?例如,我在Razor中有以下内容: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
@{
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){…}
块中。