我有一個asp.net mvc4應用程序中的驗證消息中,我想使用的字段驗證:使用的Asp.net mvc4應用
我的模型類:
namespace sample_mvc4.Models
{
public class User
{
[Required(ErrorMessage="Enter le nom")]
public string Name;
[Required(ErrorMessage = "Enter l'émail")]
public string Email;
[Required(ErrorMessage = "pas de mdp!!!!")]
public string Password;
}
}
該控制器
public class HomeController : Controller
{
public ActionResult Index()
{
return View("Register");
}
public ActionResult Register(User u)
{
if (ModelState.IsValid)
{
string s = u.Name;
return View("Index");
}
else
{
return View();
}
}
}
最後視圖Register.cshtml
@model sample_mvc4.Models.User
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<link type="text/css" href="~/Content/Site.css" />
<title>Register</title>
</head>
<body>
@using(Html.BeginForm("Register","Home")){
@Html.ValidationSummary()
<p> Name: @Html.TextBoxFor(x => x.Name)</p>
<p> Email : @Html.TextBoxFor(x => x.Email)</p>
<p> Password : @Html.TextBoxFor(x=>x.Password)</p>
<input type="submit" value="Register" />
}
</body>
</html>
我的問題是:
- 當我讓一個領域或多個空,沒有出現錯誤信息,爲什麼呢?
- 在操作
Register
用戶對象的字段始終是所有空 - 當我提交表單,動作
Register
裏面,ModelState.IsValid
需要總是如此
這些是什麼結果的原因是什麼?我如何修復我的代碼?
只是一個說明。在成功(沒有顯示錯誤時)而不是返回View(...)時,您應該返回RedirectToAction(...)。否則,當你刷新刷新前的表格將被重新提交:) –