发布项目时在ASP.NET C#中获取userID

时间:2015-04-30 14:21:12

标签: c# .net e-commerce identity

我正在为当地社区建立一个小型的craigslist / ebay类型的市场。

大部分网站都是简单的CRUD操作。我启用了个人用户帐户,当有人将项目发布到市场时,我想将他们当前的用户ID绑定到帖子。我已设置字段但如何自动附加登录用户的ID。

这是我的产品类

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 个答案:

答案 0 :(得分:0)

是的,您需要在保存之前将用户添加到产品中。类似的东西:

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

我有一段时间没有使用Entity,所以我认为这应该是正确的