Предотвратить использование оператора - PullRequest
1 голос
/ 02 октября 2011

Я хочу иметь пользовательский режим просмотра, чтобы показывать онлайн-текст пользователя, а не онлайн-пользователя, какой-либо другой текст.

Но я хочу сделать это как 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();
    }
}

1 Ответ

3 голосов
/ 03 октября 2011

Вы не можете предотвратить отображение тела using на странице Razor.Если вы хотите предотвратить рендеринг чего-либо, используйте условие 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>
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...