Итак, я пытаюсь связать автора с сообщением. Класс AppUser является наследником IdentityUser. Я пытаюсь указать автора каждого сообщения как пользователя приложения, но у меня возникают некоторые проблемы. В базе данных автор не отображается, вместо него указан AuthorId, почему? Однако кажется, что я могу связаться с пользователем приложения из сообщения, я не получаю никаких ошибок или предупреждений. Но я все еще не могу просмотреть имя автора с помощью сообщения. Может кто-нибудь объяснить, почему?
Модель сообщения
public class Post
{
.....
.....
public AppUser Author { get; set; }
}
Пользователь приложения
public class AppUser : IdentityUser
{
}
Контроллер
[HttpPost]
[ValidateAntiForgeryToken]
public async Task 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);
}
Подробнее здесь: https://stackoverflow.com/questions/596 ... ther-model