Получение идентификатора пользователя в ASP.NET C# при публикации элемента

Я строю небольшой рынок Craigslist/ Ebay для моего местного сообщества.

Большая часть сайта представляет собой простые операции CRUD. Я включил отдельные учетные записи пользователей, и когда кто-то публикует элемент на торговой площадке, я хотел бы привязать свой текущий идентификатор пользователя к сообщению. У меня настроены поля, но как я могу автоматически прикрепить идентификатор пользователя, вошедшего в систему?

Это мой класс продуктов

public class Product
{
    public string Title { get; set; }
    public decimal Price { get; set; }
    public string Photo { get; set; }
    public string Description { get; set; }
    public bool Availability { get; set; }
    public string Category { get; set; }

    public string Id { get; set; }

    public virtual ApplicationUser ApplicationUser { get; set; }
}

У меня есть поле в таблице базы данных продукта, которое будет содержать ApplicationUser_Id строковое значение, но я не знаю, как его установить.

Это мой контроллер создания продукта. Могу ли я вставить эту логику userID здесь?

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "Id,Title,Price,Description,Availability,Category,Photo")] Product product)
{
    if (ModelState.IsValid)
    {
        db.Products.Add(product);
        db.SaveChanges();
        return RedirectToAction("Index");
    }

    return View(product);
}

1 ответ

Да, вам нужно добавить пользователя в продукт, прежде чем сохранить его. Что-то вроде:

if (ModelState.IsValid)
{
    db.Products.Add(product);        
    db.Products.ApplicationUser = currentUser; //depending how you have your user defined       
    db.SaveChanges();
    return RedirectToAction("Index");
}

Я не использовал Entity некоторое время, поэтому я думаю, что это должно быть правильно

Другие вопросы по тегам