1.是不是页面response的时候,就把LogOnModel Attribute[require]映射到 cshtml上?
2.cshtml上的@Html.TextBox要保持对应,就必须让cshtml的@Html.TextBox("username")中的名称和LogOnModel 中的一致就行??
3.提交表单request后,@Html.TextBox的require验证信息,是客户端验证提示的,还是服务器返回的? cshtml.cs@{
ViewBag.Title = "后台管理登录";
}
@section Header{
<script type="text/javascript">
$(function () { $("#username").focus(); });</script>
<style type="text/css">
input[type="text"], input[type="password"]
{
width: 160px;
}
</style>
}
<h2>
登录</h2>
@Html.ValidationSummary("登录失败,无效的用户名或密码")
@using (Html.BeginForm())
{
<div style="width: 380px; margin: 0px auto">
<fieldset>
<legend>帐号信息</legend>
<p>
<label for="username">
帐号:</label>
@Html.TextBox("username")
@Html.ValidationMessage("username")
</p>
<p>
<label for="password">
密码:</label>
@Html.Password("password")
@Html.ValidationMessage("password")
</p>
<p>
@Html.CheckBox("rememberMe")
<label class="inline" for="rememberMe">
下次自动登录(公共电脑上谨慎使用)</label>
</p>
<div class="center">
<input type="submit" value="登录(L)" accesskey="L" />
</div>
<p>@Html.ActionLink("还没有账号?立即注册", "Register")</p>
</fieldset>
</div>
}controller action public ActionResult Login()
{
return View();
}
[HttpPost]
public ActionResult Login(LogOnModel model, string returnUrl)
{
if (ModelState.IsValid)//???
{
RegisteredUser usr = RegisteredUserBLL.AuthenticateUser(model.UserName, model.Password);
if (usr != null)
{
FormsAuthentication.SetAuthCookie(model.UserName + "|" + usr.RealName + "|" + usr.UserType, model.RememberMe);
if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/")
&& !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\")) 写????
return Redirect(returnUrl);
return RedirectToAction("Index", "Home");
}
ModelState.AddModelError("", "登录账号或密码不正确");
}
return View(model);
}
public class LogOnModel
{
[Required]
[Display(Name = "账号")]
public string UserName { get; set; } [Required]
[DataType(DataType.Password)]
[Display(Name = "密码")]
public string Password { get; set; } [Display(Name = "记住登录信息")]
public bool RememberMe { get; set; }
}
2.cshtml上的@Html.TextBox要保持对应,就必须让cshtml的@Html.TextBox("username")中的名称和LogOnModel 中的一致就行??
3.提交表单request后,@Html.TextBox的require验证信息,是客户端验证提示的,还是服务器返回的? cshtml.cs@{
ViewBag.Title = "后台管理登录";
}
@section Header{
<script type="text/javascript">
$(function () { $("#username").focus(); });</script>
<style type="text/css">
input[type="text"], input[type="password"]
{
width: 160px;
}
</style>
}
<h2>
登录</h2>
@Html.ValidationSummary("登录失败,无效的用户名或密码")
@using (Html.BeginForm())
{
<div style="width: 380px; margin: 0px auto">
<fieldset>
<legend>帐号信息</legend>
<p>
<label for="username">
帐号:</label>
@Html.TextBox("username")
@Html.ValidationMessage("username")
</p>
<p>
<label for="password">
密码:</label>
@Html.Password("password")
@Html.ValidationMessage("password")
</p>
<p>
@Html.CheckBox("rememberMe")
<label class="inline" for="rememberMe">
下次自动登录(公共电脑上谨慎使用)</label>
</p>
<div class="center">
<input type="submit" value="登录(L)" accesskey="L" />
</div>
<p>@Html.ActionLink("还没有账号?立即注册", "Register")</p>
</fieldset>
</div>
}controller action public ActionResult Login()
{
return View();
}
[HttpPost]
public ActionResult Login(LogOnModel model, string returnUrl)
{
if (ModelState.IsValid)//???
{
RegisteredUser usr = RegisteredUserBLL.AuthenticateUser(model.UserName, model.Password);
if (usr != null)
{
FormsAuthentication.SetAuthCookie(model.UserName + "|" + usr.RealName + "|" + usr.UserType, model.RememberMe);
if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/")
&& !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\")) 写????
return Redirect(returnUrl);
return RedirectToAction("Index", "Home");
}
ModelState.AddModelError("", "登录账号或密码不正确");
}
return View(model);
}
public class LogOnModel
{
[Required]
[Display(Name = "账号")]
public string UserName { get; set; } [Required]
[DataType(DataType.Password)]
[Display(Name = "密码")]
public string Password { get; set; } [Display(Name = "记住登录信息")]
public bool RememberMe { get; set; }
}
Controller在return View(model)的时候,会将模型传给视图,然后视图会将模型渲染到对应的标记上,再返回。
2.cshtml上的@Html.TextBox要保持对应,就必须让cshtml的@Html.TextBox("username")中的名称和LogOnModel 中的一致就行??
参考:http://msdn.microsoft.com/en-us/library/dd492494(v=vs.108).aspx
这里的参数代表ViewData中的一项。
3.提交表单request后,@Html.TextBox的require验证信息,是客户端验证提示的,还是服务器返回的?
默认是服务器端的,不过你可以添加客户端的验证。方法在Pro MVC 3.0书上(或者很多类似书籍,包括在线免费下载的mvcmusicstore教程中都有)。