![](/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.