非常感谢任何帮助!
在我偶然发现这一切之前,一切都很顺利:(
当我点击我的显示表上的编辑时,它会转到编辑vue,在我的id文本字段中输入0,但表单的其余部分是空白的吗?
我有什么:
public ActionResult EditProduct(int? id)
{
Product prod = new Product();
return View(prod);
}
谢谢大家!
答案 0 :(得分:0)
在您的代码中,您正在创建一个新产品,然后将其发送到视图,因此它将为空白并且ID为零。
您需要检索您的产品,然后将其传递给视图。也许是这样的:
public ActionResult EditProduct(int? id)
{
Product prod = _productRepository.Get(id);// code to retrieve product from database
if (prod != null)
{
return View(prod);
}
else
{
return RedirectToAction("Error"); // or whatever...
}
}
答案 1 :(得分:0)
您需要通过ID从数据存储加载产品,而不是创建新实例。类似的东西:
return View(db.Products.Find(id))
开始使用MVC的好地方是http://www.asp.net/mvc。有很多关于数据驱动的mvc网站的教程。
答案 2 :(得分:0)
要创建存储库,请使用方法Get,GetAll,Save等创建名为IProduct的接口。您的存储库类实现(即实现IProductRepository的ProductRepository.cs)具有对ObjectContext的引用(或者DbContext使用的是ef 4.1)< / p>
有些人更喜欢拥有一个通用的IRepository界面 - 但据我说'通用存储库是一个童话故事'
完成后,创建
YourRepository repository = new Repository(); //Some choose to pass in a context or inject one via unity, ninject, etc. this is a basic example.
您的存储库有一个方法
private YourContextName _context = new YourContextName(); public Product Get(int productId) { return _context.Products.Where(o=>o.ProductId=productId).Single(); }
这就是它的全部内容。当然有更高级的实现,但它是相当基础的。
http://www.codeproject.com/KB/database/ImplRepositoryPatternEF.aspx