所有代码

@foreach (var item in Model)
{
<div class="Comment-Box">
    <p>@item.UserId</p>
    @(Membership.GetUser(item.UserId.ToString()).UserName)
      @if (Membership.GetUser() != null)
        {
           if(User.IsInRole("Admin") || item.UserId == (int)Membership.GetUser().ProviderUserKey){
                @Html.ActionLink("Delete", "DeleteComment", new { id=item.Id })
           }
        }
</div>
}

问题代码

 @(Membership.GetUser(item.UserId.ToString()).UserName)

问题是,当我访问该页面时,该方法返回null并找不到用户名,我是ASP.Net和MVC 4的新手,只是想知道为什么它不起作用? 以及如何解决它。 任何答复将不胜感激。

===============>>#1 票数:0

如果您使用的是SimpleMembership,则可能无法在Membership中使用该方法。 SimpleMembership不能为您提供一切(很简单),仅足以进行身份​​验证和授权。

或者,您可以将用户名添加到模型中,然后将其从控制器中传入。

===============>>#2 票数:0

感谢您的答复,但是我想出了解决问题的简单方法。 学习了一个UserContext,我可以用它来获取Models文件夹中的用户名。

解决方案代码

<p>
    @{
        Amity.Web.Models.UsersContext db = new Amity.Web.Models.UsersContext();   
    }
</p>
@foreach (var item in Model)
{
 <div class="Comment-Box">
    <p>@item.UserId</p>
    @db.UserProfiles.FirstOrDefault(user => user.UserId == item.UserId).UserName
    @if (Membership.GetUser() != null)
        {
          if(User.IsInRole("Admin") || item.UserId == (int)Membership.GetUser().ProviderUserKey){
                @Html.ActionLink("Delete", "DeleteComment", new { id=item.Id })
           }
        }
</div>
}

获取用户上下文

Amity.Web.Models.UsersContext db = new Amity.Web.Models.UsersContext();

获取用户名

@db.UserProfiles.FirstOrDefault(user => user.UserId == item.UserId).UserName

  ask by JRascall translate from so

未解决问题?本站智能推荐:

2回复

ASP.NET MVC4显示所有注册的用户名

我在使用剃刀在c#,html进行编程时遇到问题,显示默认数据库UserProfile中的所有注册成员名称,我需要显示UserName 并在模型中 在视图中 注册成员:@ Model.RegisterMembers.ToString() 我现在已经尽力了3天,并且它不能
3回复

ASP.NET MVC HtmlHelper Razor语法

我目前正在学习ASP.NET MVC,并提供以下代码片段: 我理解lambda表达式将模型称为m ,但第二个参数是什么? 它似乎是一个匿名类型,但我的主要问题是为什么占位符前面有一个@字符?
4回复

在Razor ASP.NET MVC中调用方法

我是MVC的新手,无法在视图输入字段中显示某种方法的结果。 我不太确定是否应该在cshtml或单独的cs文件中创建方法。 我已经使用@function标记在下面的cshtml文件中创建我的方法 我在cshtml文件中这样称呼它 我收到一个错误说明 模板只能与字段访问
5回复

ASP.net MVC 4 Razor ShortDateTime字段问题

我想表明我的约会像这样的dd/mm/yyyy ,而不是date+ time这是我的代码 我也试过了(model => model.OFFRE_DATE.ToString("dd/MM/yyyy")和(model => model.OFFRE_DATE.Value.ToShor
2回复

Asp.NET MVC剃刀格式十进制? 至 #。###,##

我目前正在研究ASP.NET MVC 4.5应用程序。 我尝试将模型中的属性呈现为正确的数值: ViewModel中的属性: 来自数据库的数据如下所示: 99999,99 我想要的格式如下: 99.999,99 在我的剃刀视图中,我使用如下属性: 不幸的是
2回复

网址路由问题-Asp.Net MVC剃刀

我的ajax调用使用“ / Controller / ActionName” URL格式。 此模式与具有此模式的开发服务器一起正常工作 / Controller / ActionName 我的应用程序已使用以下URL模式部署到IIS / domain / Controller
1回复

计算剃刀的年龄(ASP.NET MVC)

我有一张桌子的风景 这是视图的代码: 这段代码是关于年龄的: 它从数据库返回我一年。 我需要显示年龄。 我怎样才能正确地做到这一点?
1回复

ASP.NET MVC 4 Razor编辑所选列表项

我在视图中的列表框中显示模型对象的列表。 当我在列表框中选择一个特定的项目并单击“编辑”时,我想编辑该特定的Model对象。 查看: 我需要在运行时获取列表框选定的项目ID,以在操作链接中提供它。 控制器: 我无法获得正确的网址,例如:
4回复

根据模型属性ASP.NET MVC授权用户

我试图阻止用户删除,除非他们创建了模型。 (我的模型存储了其创建者的名称)现在,用户单击“删除”按钮,将其带到删除页面,然后单击“删除确认”按钮。 如何阻止尚未创建模型的用户删除模型? 我知道我可以使用Context.User.Identity.Name获取当前用户的名称
2回复

如何在ASP.NET MVC Razor中验证DropdowList

请帮我这个问题。 我无法验证我的项目的DropdownList。 我的模型使用了DataAnnontation: 最后,一些创建视图的代码: