![](/img/trans.png)
[英]How to use [FromHeader] attribute with custom model binding in Asp.Net Core 2.2
[英].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.