首页 文章

在ASP.NET中删除记录后阻止后退按钮或显示错误

提问于
浏览
2

我有一个ASP.NET MVC应用程序 .

如果用户单击浏览器中的后退按钮,如何显示错误消息而不是返回视图?

例如,我有一个用户可以删除日志的功能 . 删除后,控制器方法将它们重定向到页面 . 多数民众赞成 .

但是,如果用户在重定向后单击后退按钮,它们将返回到显示现在已删除记录的同一页面 . 那么每次单击后退按钮时,如何验证检查记录是否仍然存在?

我关闭日志的代码是:

public ActionResult CloseLog(int id)
 {
        var query = from log in db.Logs where log.LogID == id select log;
        foreach (Log log in query)
        {
          log.DateTimeResolved = System.DateTime.Now;
          Response response = new Response
          {
              ResponseText = "This log is now closed. Please call the Service Desk on XXXX if needed.",
              UserName = User.Identity.Name,
              DateTimeOfUpdate = System.DateTime.Now,
              LogID = log.LogID
          };
          db.Responses.Add(response);
        }
       db.SaveChanges();
       return RedirectToAction("Index", "Home"); 
    }

和我的代码来查看

public ActionResult CreateServiceRequestResponse(int? id)
    {
        if (id.HasValue)
        {
            LogID = id.Value;
        }
        var Responses = (from a in db.Responses where a.LogID == LogID select new ResponseViewModel { ResponseText = a.ResponseText, DateTimeOfUpdate = a.DateTimeOfUpdate, Username = a.UserName });
        var ServiceRequest = (from a in db.ServiceRequests where a.LogID == LogID select new ServiceRequestViewModel { RequestType = a.RequestType, AdditionalInformation = a.AdditionalInformation, EstimatedResolveDate = a.EstimatedResolveDate, LogID = a.LogID});
        ViewBag.ServiceRequestData = ServiceRequest;
        ViewBag.Data = Responses;
        return View();
    }

1 回答

  • 0

    把它放在你认为应该进行验证的地方 .

    var query = from log in db.Logs where log.LogID == id select log;
    if (!query.Any())
    {
        // Or you can have your own handler.
        throw new HttpException(404, "Page not found");
    }
    

相关问题