Cus*_*dio 9 c# razor asp.net-mvc-3
我正在创建一个基于Twitter引导程序的页面.
在特定的CUD中,我需要更改div的类.class="tab-pane active"或者class="tab-pane"取决于我的viewmodel的属性.
该属性可能是一个int,然后对于每个div,我将在活动选项卡上进行验证.这听起来不对?
我想的是:
<div(@Model.ActiveTab == 1 ? class="tab-pane active" : class="tab-pane") id="1">
Run Code Online (Sandbox Code Playgroud)
但显然这不起作用
Dar*_*rov 11
试试这样:
<div class="tab-pane @(Model.ActiveTab == 1 ? " active" : "")" id="1">
...
</div>
Run Code Online (Sandbox Code Playgroud)
或者为了避免这个可怕的标签汤写一个自定义HTML帮助器:
public static class TabExtensions
{
private class TabControl: IDisposable
{
private readonly ViewContext _viewContext;
public TabControl(ViewContext viewContext)
{
_viewContext = viewContext;
}
public void Dispose()
{
_viewContext.Writer.Write("</div>");
}
}
public static IDisposable Tab(this HtmlHelper htmlHelper, bool active, object htmlAttributes)
{
var div = new TagBuilder("div");
div.MergeAttributes(new RouteValueDictionary(htmlAttributes));
div.AddCssClass("tab-pane");
if (active)
{
div.AddCssClass("active");
}
htmlHelper.ViewContext.Writer.Write(div.ToString(TagRenderMode.StartTag));
return new TabControl(htmlHelper.ViewContext);
}
}
Run Code Online (Sandbox Code Playgroud)
可以像这样使用:
@using (Html.Tab(Model.ActiveTab == 1, new { id = "tab1" }))
{
...
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下会发出:
<div class="tab-pane active" id="tab1">
...
</div>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3433 次 |
| 最近记录: |