c# - 使用 ASP.NET Razor View 引擎获得内联代码块的最简洁方法?

标签 c# syntax razor

这个有效:

<li @{if (Model.Mode == "map") {<text> class="bselected"</text>}}>@Html.ActionLink("Map & Directions", MVC.Biz.Show(Model.SingleBiz.BizName, "map", string.Empty))</li>

但这很难看……有没有更好、更干净的方法来做到这一点?在此代码中,我正在检查某些 View 数据是否为 ​​null 或为空,如果是则添加一个类。

或者是否有另一种技术可以更好地完成此任务?

最佳答案

我昨天发布了一些处理这种事情的 Html 扩展方法:

How to concisely create optional HTML attributes with razor view engine?

使用此方法将为您提供以下 Razor 语法:

<li @Html.Css("selected", Model.Mode == "map" )>STUFF</li>

注意:您可以将属性链接在一起,以根据多个条件构建属性值。例如:

<li @Html.Css("selected", true).Add("winner", false).Add("last", true)>STUFF</li>

会输出:

<li class="selected last">STUFF</li>

此外,如果结果属性值为空,属性将折叠以保持 html 整洁。

关于c# - 使用 ASP.NET Razor View 引擎获得内联代码块的最简洁方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4195927/

相关文章:

c# - 在 C# 中使用 using 语句

c# - 使用 Html.Helper 函数创建多行文本框

asp.net-mvc-3 - 如何从 Controller 设置布局

c# - 什么时候可以在 Dispose 中调用 Finalize?

javascript - 从 Controller 传递数据时,Jquery Grid 绑定(bind)需要时间

c++ - 在这种情况下如何解决?语法错误 : missing ';' before '* "node"?

javascript - 函数的对象语法困惑

Markdown 表语法的正则表达式?

c# - c# razor (ASP.NET MVC) 中的 Html 帮助程序参数

.net - 带有 .NET Core 的 Angular 2