视图中的我的助手,用于显示在应用程序中注册的用户的全名,以及通过第三方身份验证登录时的用户名。

@using MyApp.Models;

@helper GetUserName()
{
    if (User.Identity.AuthenticationType == "Application")
    {
        using (var db = new MyAppDbContext())
        {
            @db.Users.Find(User.Identity.GetUserId()).FullName
        }
    }
    else
    {
        @User.Identity.GetUserName()
    }
}


然后,我使用此帮助器:

@if (Request.IsAuthenticated)
{
    using (Html.BeginForm("LogOff", "Account", FormMethod.Post, new { id = "logoutForm", @class = "navbar-form pull-right" }))
    {
    @Html.AntiForgeryToken()

    <ul class="nav">
        <li>
            @Html.ActionLink("Hello " + GetUserName() + "!", "Manage", "Account", routeValues: null, htmlAttributes: new { title = "Manage" })
        </li>
        <li><a href="javascript:document.getElementById('logoutForm').submit()">Log off</a></li>
    </ul>
    }
}


我的用户名是Proba234,它显示如下:



为什么出现那些奇怪的字符(<$G+$>),以及如何消除它们?

最佳答案

这可能是与Visual Studio Page Inspector中的助手使用有关的某种功能或错误,您可能不会在外部浏览器中看到这些标记。我在VS 2013中轻松复制了它。例如,可以在ASP.NET forum上找到关于它的线程。

08-26 16:52