在我的控制器模型被修改前(更新或刪除)我試圖驗證用戶執行操作實際上擁有他們正在嘗試修改的對象。模型所有權檢查
我目前正在做這個方法級別,它似乎有點多餘。
[HttpPost]
public ActionResult Edit(Notebook notebook)
{
if (notebook.UserProfileId != WebSecurity.CurrentUserId) { return HttpNotFound(); }
if (ModelState.IsValid)
{
db.Entry(notebook).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
return View(notebook);
}
是否有一種通用的方法可以在各種模型中重複使用?
是否可以用ActionFilter
來做到這一點?
不會添加[綁定(排除=「UserProfileID」)]防止由模型綁定更改?理想情況下,我想要返回一個ViewModel,它不包含任何ID字段,只是將它們存儲在TempData或其他東西中(不太確定)... – mezmi
是的,但它會從哪裏來? :) – blowdart
是的,我想我沒有真正想過。就像我說的,我想返回一個不包含任何id字段的ViewModel,我只是不知道在MVC中臨時將這個ID存儲在哪裏,而不是使用Session>:)....這樣我就可以返回我的POCO到控制器,並使用AutoMapper或一些水合ViewModel。 – mezmi