显示已登录用户的数据

时间:2014-01-25 10:21:38

标签: c# asp.net-mvc data-binding

我有一个名为AdresModels的模型,就是这样:

namespace App_User.Models
{
public class AdresContext: DbContext
{
        public AdresContext()
            : base("DefaultConnection")
        {
        }

        public DbSet<UserProfile> UserProfiles {get; set;}
        public DbSet<AdresModels> AdresModel { get; set; }
        public DbSet<RachunekModels> RachunekModel { get; set; } 
}


[Table("Adres")]
public class AdresModels
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int AdresID { get; set;}
public virtual int  UserId { get; set; }
[ForeignKey("UserId")]
public virtual UserProfile User {get; set;}
    public string Miejscowosc { get; set; }
    public string Nr_domu { get; set; }
    public string Ulica { get; set; }
    public string Nr_mieszkania { get; set; }


}

}

比我有看法:

    <td>
        @Html.DisplayFor(modelItem => item.User.UserName)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.Miejscowosc)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.Nr_domu)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.Ulica)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.Nr_mieszkania)
    </td>

现在我想在UserName ==登录用户的视图中仅显示此特定数据。 我不知道我需要在哪里进行更改以使其正常工作。

我还有一个问题。

我在RachunekModels中有AdresModels和RachunekModel我有来自AdresModels的外键,我想将记录的UserID与Adres相关联,而不是从Rachunek显示已登录用户的数据。

public class RachunekContext : DbContext
{
        public RachunekContext()
            : base("DefaultConnection")
        {
        }
        public DbSet<UserProfile> UserProfiles {get; set;}
        public DbSet<AdresModels> AdresModel { get; set; }
        public DbSet<RachunekModels> RachunekModel { get; set; } 
}
[Table("Rachunek")]
public class RachunekModels
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int RachunekID { get; set;}

public virtual int AdresID { get; set; }
[ForeignKey("AdresID")]
public virtual AdresModels Adreses { get; set; }

}

我真的不知道如何联系这个。

1 个答案:

答案 0 :(得分:0)

  

我不知道在哪里需要进行更改以使其正常工作。

在负责查询模型的控制器操作中。在这里,您应该对查询应用过滤器,以便仅检索符合此条件的元素:

[Authorize]
public ActionResult Index()
{
    string loggedUser = User.Identity.Name;
    var model = db.AdresModel.Where(x => x.User.UserName == loggedUser).ToList();
    return View(model);
}
相关问题