您好我有以下代码:
这是控制器中的动作
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(Category category)
{
string currentUserId = User.Identity.GetUserId();
var currentCategory = CategoriesService.GetCategory(category.Id, currentUserId);
if (currentCategory != null)
{
currentCategory.Name = category.Name;
CategoriesService.SaveCategory();
}
else
{
Category toAdd = new Category();
toAdd.Name = category.Name;
toAdd.Owner = ApplicationUsersService.GetUser(currentUserId);
CategoriesService.SaveCategory(toAdd);
}
return this.PartialView("_CategoriesListPartial", CategoriesService.GetCategories(currentUserId));
}
这是我用来将数据保存到数据库的服务
public void SaveCategory()
{
Context.SaveChanges();
}
public void SaveCategory(Category category)
{
Context.Categories.Add(category);
Context.SaveChanges();
}
如果我正在使用currentCategory != null
更新模型,一切正常,但在另一个模型中,模型不会保存在数据库中。
与其他服务类类似的问题
这很好用
public ActionResult Index()
{
string currentUserId = User.Identity.GetUserId();
CategoryViewModel categoriesViewModel = new CategoryViewModel();
categoriesViewModel.Categories = CategoriesService.GetCategories(currentUserId);
return View(categoriesViewModel);
}
服务
public ICollection<Category> GetCategories(string userId)
{
return this.Context.Categories.Where(c => c.Owner.Id == userId && c.IsDeleted == false).OrderBy(c => c.Name).ToList();
}
这根本不起作用
public ActionResult Index()
{
string currentUserId = User.Identity.GetUserId();
BooksViewModel booksViewModel = new BooksViewModel();
booksViewModel.Book = new Book();
booksViewModel.Books = BooksService.GetBooks(currentUserId);
return View(booksViewModel);
}
服务
public ICollection<Book> GetBooks(string userId)
{
return this.Context.Books.Where(b => b.Owner.Id == userId && b.IsDeleted == false).OrderBy(b => b.Name).ToList();
}
请帮忙
答案 0 :(得分:0)
在没有看到GetCategory()
原地的情况下,这里还不够。但是,我会冒险:GetCategory()
中使用的上下文实例与SaveCategory()
中使用的实例不同。