我在阅读来自现有模板的剃刀语法时遇到问题。
<div class="@(HasText(columnclass) ? columnclass == "myColumns-1" || columnclass == "myColumns-2" ? "col-md-12" : columnclass == "myColumns-12" ? "col-md-6" : "col-md-12" : "col-md-12")">
以上是否与:
相同 @if(HasText(columnclass))
{
if(columnclass == "myColumns-1" || columnclass == "myColumns2")
{
<div class="col-md-12"></div>
}
else if (columnclass == "myColumns-12")
{
<div class="col-md-6"></div>
}
else
{
<div class="col-md-12"></div>
}
}
else
{
<div class="col-md-12"></div>
}
第一个复杂的剃刀语法是否可以在html.extension中使用,甚至可以在func&lt;&gt;中使用?
答案 0 :(得分:0)
你可以写一个简单的扩展 -
public static class DivExtensions
{
public static MvcHtmlString Div(this HtmlHelper html, string input)
{
if(String.IsNullOrWhiteSpace(input))
return new MvcHtmlString("<div class=\"col-md-12\"></div>");
if (input == "myColumns-12")
return new MvcHtmlString("<div class=\"col-md-6\"></div>");
return new MvcHtmlString("<div class=\"col-md-12\"></div>");
}
}
用法 -
@using MVC.NameSpaceOfExtension
@Html.Div("myColumns-6")
注意:我无法保证扩展方法中的逻辑。请在您身边进行测试,如果逻辑有问题,请将其替换为您的逻辑。