gpt4 book ai didi

.net - 自定义 html 帮助程序 : Create helper with "using" statement support

转载 作者:行者123 更新时间:2023-12-03 07:22:43 25 4
gpt4 key购买 nike

我正在编写我的第一个 asp.net mvc 应用程序,我有一个关于自定义 Html 助手的问题:

要制作表单,您可以使用:

<% using (Html.BeginForm()) {%>
*stuff here*
<% } %>

我想用自定义 HTML 帮助器做类似的事情。换句话说,我想改变:

Html.BeginTr();
Html.Td(day.Description);
Html.EndTr();

进入:

using Html.BeginTr(){
Html.Td(day.Description);
}

这可能吗?

最佳答案

以下是 C# 中可能的可重用实现:

class DisposableHelper : IDisposable
{
private Action end;

// When the object is created, write "begin" function
public DisposableHelper(Action begin, Action end)
{
this.end = end;
begin();
}

// When the object is disposed (end of using block), write "end" function
public void Dispose()
{
end();
}
}

public static class DisposableExtensions
{
public static IDisposable DisposableTr(this HtmlHelper htmlHelper)
{
return new DisposableHelper(
() => htmlHelper.BeginTr(),
() => htmlHelper.EndTr()
);
}
}

在这种情况下,BeginTrEndTr直接写入响应流。如果您使用返回字符串的扩展方法,则必须使用以下方式输出它们:

htmlHelper.ViewContext.HttpContext.Response.Write(s)

关于.net - 自定义 html 帮助程序 : Create helper with "using" statement support,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/676746/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com