簡體   English   中英

.NET Core 使用 AppUser 作為另一個模型中的屬性

[英].NET Core use AppUser as attribute in another model

所以我要做的是將作者與帖子相關聯。 AppUser 類從 IdentityUser 擴展而來。 我試圖將每篇文章的作者設置為 AppUser,但我遇到了一些問題。 在數據庫中,作者沒有出現,而是 AuthorId,這是為什么? 但是看起來我可以從帖子中訪問 AppUser,我沒有收到錯誤或警告。 但是我仍然無法在帖子的幫助下查看作者姓名,有人可以解釋原因嗎?

崗位模型

public class Post
{
    .....
    .....

    public AppUser Author { get; set; }

}

應用用戶

public class AppUser : IdentityUser
{
}

控制器

    [HttpPost]
    [ValidateAntiForgeryToken]
    public async Task<IActionResult> Create(Post post)
    {

        if (ModelState.IsValid)
        {

            AppUser appUser = await userManager.GetUserAsync(HttpContext.User);
            post.Author = appUser;

            string slug = userProject.Name.ToLower().Replace(" ", "-");
            post.Slug = slug;

            context.Add(post);
            await context.SaveChangesAsync();

            return RedirectToAction("Index");
        }
        return View(post);
    }

看法

這就是我試圖在視圖中打印作者姓名的方式,但是它只是將空間留空,我可以以相同的方式顯示模型的所有其他屬性。

@Html.DisplayFor(modelItem => item.Author.UserName)

為什么不顯示作者用戶名,為什么屬性會顯示在 AuthorId 而不是作者?

謝謝!

編輯 - 添加索引操作

    public IActionResult Index()
    {
        var posts= context.Posts;
        return View(posts);
    }

您應該將AuthorId添加到您的Post模型。

public class Post
{
    public string AuthorId { get; set; }

    [ForeignKey("AuthorId")]
    public AppUser Author { get; set; }
}

並將AuthorId設置為appUser.Id

post.AuthorId = appUser.Id;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM