從視圖'x'中,當用戶單擊'編輯項目'時,呈現'編輯'頁面的控制器操作也會檢查用戶該頁面。如何在頁面上顯示友好的錯誤消息並取消控制器動作
我想要做的是檢查這些權限,如果用戶沒有他們,我想在'X'視圖上顯示錯誤消息並取消控制器操作。
現在,我的代碼如下所示:
[HttpPost]
public virtual ActionResult EditPage(int? itemId)
{
var model = new EditPageModel();
if (itemId.HasValue)
{
var obj = new Item(itemId.Value);
// Check for user's edit permission before we do anything else.
var request = SecurityRequest.Create(obj, Item_Edit);
Request.Execute(() => SecurityManager.ValidatePermissions(request));
if (!request.IsValid(Item_Edit))
{
//skip the rest and return error
Response.StatusCode = (int)HttpStatusCode.Forbidden;
// Need Help Here!!!
}
// Mode code executes
return View(model);
}
對於錯誤信息,不要忘了大的,友好的信件:HTTP://mantia.me/images /dontpanic_large.jpg – SomeKittens
您可否在之前檢查權限而不顯示編輯鏈接?爲什麼讓他們看到它,如果他們不能編輯? – user1166147
根本不顯示編輯鏈接是不可能的。在放置編輯按鈕的視圖中,列出了用戶可以/不能編輯的不同項目。在選擇每個項目後,我們需要確定他是否可以編輯。理想情況下,我們將基於此禁用/啓用「編輯」按鈕,但因爲這需要回撥給控制器,所以我們只是在用戶實際點擊「編輯」按鈕時保存它。 – Trynity