我想要一个自定义视图模式,以显示在线用户文本,而不是在线用户显示其他文本。
但是我想在使用声明中像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();
}
}
答案 0 :(得分:3)
您无法阻止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>
}