更改您的登录操作以采用可为空的 int,如果设置,则添加模型状态错误
public ActionResult LogOn(int? id)
{
//int id = Request.QueryString[;
if (id != null)
{
LogOnModel model = new LogOnModel();
ModelState.AddModelError("", "Please Login to use this page");
return View(model);
}
第二种方法是创建一个操作过滤器来检查登录并重定向设置 Viewbag.LoginError
public class CheckLoginFilterAttribute : ActionFilterAttribute
{
public override void onactionexecuting(ActionExecutedContext filterContext)
{
if (Membership.GetUser() != null)
{
Viewbag.LoginError = "Please Login to use this page";
filterContext.Result = new RedirectToRouteResult(
new System.Web.Routing.RouteValueDictionary {
{"controller", "Account"}, {"action", "Logon"}
}
{
}
base.OnActionExecuted(filterContext);
}
向您的登录页面添加一个显示@(Viewbag.LoginError)
. 如果未填充,这将呈现空白。
第三种方法是创建一个自定义授权过滤器,该过滤器重定向并在 V@(ViewData["LoginError"].
向您的登录页面添加一个显示@(ViewData["LoginError"]
. 如果未填充,这将呈现空白。
请注意,我对最后一种方法不太确定或不满意。