C# 在asp/mvc应用程序中使用错误提示
我一直在寻找一种直接的方法来提示错误消息,最好是一个弹出窗口(javascript或其他),让登录系统失败的用户使用此表单:C# 在asp/mvc应用程序中使用错误提示,c#,javascript,asp.net,asp.net-mvc-3,C#,Javascript,Asp.net,Asp.net Mvc 3,我一直在寻找一种直接的方法来提示错误消息,最好是一个弹出窗口(javascript或其他),让登录系统失败的用户使用此表单: @model Blog.Models.ViewModels.LoginView <!DOCTYPE html> <html> <body> @using (Html.BeginForm()) { <p>Your name: @Html.TextBoxFor(x => x.name) </p> <p&g
@model Blog.Models.ViewModels.LoginView
<!DOCTYPE html>
<html>
<body>
@using (Html.BeginForm()) {
<p>Your name: @Html.TextBoxFor(x => x.name) </p>
<p>Your password: @Html.TextBoxFor(x => x.password)</p>
<input type="submit" value="Login" />
}
</body>
</html>
我建议不要使用弹出式或alert()对话框。相反,我将使用样式化的div来显示错误消息。如果您使用的是jQueryUI,可以试试我的。因为它是用javascript显示的,所以您可以这样使用它: 控制器:
private BlogModel model = new BlogModel();
[HttpPost]
public ActionResult LoginForm(string name, string password)
{
SysUser user = model.SysUsers.Where(x => x.SysUserName == name).First();
{
if (user != null && user.SysPassword == password)
{
Session["usrn"] = name;
return RedirectToAction("LoginSuccessful", "Users");
}
else
{
//display error//
}
}
[HttpPost]
public ActionResult LoginForm(string name, string password)
{
SysUser user = model.SysUsers.Where(x => x.SysUserName == name).First();
{
if (user != null && user.SysPassword == password)
{
Session["usrn"] = name;
return RedirectToAction("LoginSuccessful", "Users");
}
else
{
ViewBag.LoginError = true;
}
}
}
带有jquery消息的标记:
<div id="loginError" style="display:none">Login Error...</div>
@if (ViewBag.LoginError == true)
{
<script type="text/javascript">
$("#loginError").message({type:"error"});
</script>
}
@if (ViewBag.LoginError == true)
{
<div id="loginError" class="error">Login Error...</div>
}
登录错误。。。
@如果(ViewBag.LoginError==true)
{
$(“#登录错误”)。消息({type:“error”});
}
或者,如果您愿意,不使用jquery消息:
<div id="loginError" style="display:none">Login Error...</div>
@if (ViewBag.LoginError == true)
{
<script type="text/javascript">
$("#loginError").message({type:"error"});
</script>
}
@if (ViewBag.LoginError == true)
{
<div id="loginError" class="error">Login Error...</div>
}
@if(ViewBag.LoginError==true)
{
登录错误。。。
}
使用Ajax.BeginForm()
而不是Html.BeginForm()
在TempDataYep中为页面添加一点脚本,谢谢jrummell这正是我所需要的。我只需要在控制器上添加一个新操作,在其中定义LoginError,如下所示:public ActionResult LoginFailed(){ViewBag.LoginError=true;return View(“LoginForm”);}
然后重定向到该控件,否则LoginForm操作将不会有输出,但现在它可以工作了!