防止using语句的发生
本文关键字:语句 using 防止 | 更新日期: 2023-09-27 18:10:19
我想有一个自定义视图模式,显示在线用户文本,而不是在线用户一些其他文本。
但是我想在using语句中像Html.BeginForm()
那样做。
我已经做了一个类,可以在使用和文本开始时写入文本,但我不能让它阻止{}中的文本发生。
@using (AuthorizedContent(Html, "Adminstrator"))
{
<text>Only the administrator should see this</text>
}
public static Test AuthorizedContent(this HtmlHelper helper, String roleName)
{
return null;
var test = new Test(helper);
return test;
}
public class Test : IDisposable
{
private HtmlHelper _helper;
public Test(HtmlHelper helper) {
_helper = helper;
this.StartTag();
}
public void StartTag()
{
var writer = _helper.ViewContext.Writer;
writer.Write("Hello");
}
public void EndTag()
{
var writer = _helper.ViewContext.Writer;
writer.Write("Hello");
}
void IDisposable.Dispose()
{
this.EndTag();
}
}
您无法阻止在Razor页面中呈现using
的主体。如果你想阻止渲染使用if
条件:
@if (AuthorizedContent(Html, "Adminstrator"))
{
<text>Only the administrator should see this</text>
}
或者看看这个方法的名字,也许你想重新发明一些已经存在的东西:
@if (User.IsInRole("Adminstrator"))
{
<text>Only the administrator should see this</text>
}