mvc中的html属性,ASP.NET MVC剃刀:HTML中的条件属性

采用TagWrap扩展方法。 您问题的代码如下所示:

@using (Html.TagWrap("li", condition ? new { @class = "active" } : null))

{

var anchorAttrs = new Dictionary { { "href", Url.Action("BusinessDetails", "Business") } };

if(condition)

{

anchorAttrs["style"] = "color: white; background-color: #08C; border: 1px solid #08C;";

}

using (Html.TagWrap("a", anchorAttrs))

{

Business Details

}

}

TagWrap扩展方法

使用Microsoft.AspNetCore.Mvc.ViewFeatures;

public static IDisposable TagWrap(this IHtmlHelper htmlHelper, string tagName, object data)

{

return htmlHelper.TagWrap(tagName, HtmlHelper.AnonymousObjectToHtmlAttributes(data));

}

public static IDisposable TagWrap(this IHtmlHelper htmlHelper, string tagName, IDictionary data)

{

var tag = new TagBuilder(tagName);

tag.MergeAttributes(data);

htmlHelper.ViewContext.Writer.Write(tag.RenderStartTag());

return new DisposableAction(() =>

htmlHelper.ViewContext.Writer.Write(tag.RenderEndTag()));

}

用于在Dispose上呈现结束标记的Helper类

public class DisposableAction : IDisposable

{

private readonly Action DisposeAction;

public DisposableAction(Action action)

{

DisposeAction = action;

}

public void Dispose()

{

DisposeAction();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值