防止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();
    }
}

防止using语句的发生

您无法阻止在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>
}