我有一个应用程序,其中有一个用户和零售商帐户。我想实现零售商注册表的验证。我为零售商做了一个具有必要内涵的模型,但页面仍然没有显示任何错误输入的消息。任何建议,我可以如何实现我的目标。即时通信使用Asp.net MVC
[PropertiesMustMatch("Password", "ConfirmPassword", ErrorMessage = "The password and confirmation password do not match.")]
public class RegisterStore
{
[Required(AllowEmptyStrings = false, ErrorMessage = "Store Name is Required")]
[DataType(DataType.Text)]
[Display(Name = "Store Name")]
public string Store_Name { get; set; }
.
.
Similarly other properties ...
.
.
}View的代码如下所示
<h2>Create a Store Account</h2>
<p>
Use the form below to create a new account.
</p>
<% using (Html.BeginForm())
{%>
<%: Html.ValidationSummary(true) %>
<fieldset>
<legend>Retailer Information</legend>
<div class="editor-label">
<%: Html.LabelFor(model => model.Store_Name) %>
</div>
<div class="editor-field">
<%: Html.TextBoxFor(model => model.Store_Name) %>
<%: Html.ValidationMessageFor(model => model.Store_Name) %>
</div>
.
... Similar DIVs for other properties ....
.
.
.
.
<p>
<input type="submit" value="Next" />
</p>
</fieldset>
<% } %>
控制器的代码如下所示
[HttpPost()]
public ActionResult RetailerRegisteration(RegisterStore storeModel)
{
//ViewData["genders"] = Genders;
Debug.WriteLine("Started RetailerRegisteration");
if (string.IsNullOrEmpty(storeModel.UserName))
ModelState.AddModelError(string.Empty, "Please enter Username");
if (string.IsNullOrEmpty(storeModel.Store_Name))
ModelState.AddModelError(string.Empty, "Please enter a store name");
if (!string.IsNullOrEmpty(storeModel.Email) || !storeModel.Email.Contains("@"))
ModelState.AddModelError(string.Empty, "Please enter a valid e-mail address!");
if (string.IsNullOrEmpty(storeModel.Password))
ModelState.AddModelError(string.Empty, "Please enter a Password");
if(! storeModel.Password.Equals(storeModel.ConfirmPassword))
ModelState.AddModelError(string.Empty, "The Passwords must match");
if (ModelState.IsValid)
{
... Create Store Account ....
}发布于 2012-03-15 01:11:59
尝试使用<%: Html.ValidationSummary(false) %>显示所有错误。
另外,请参考this问题。
发布于 2012-03-15 02:10:29
您是使用客户端验证还是仅使用服务器端验证?
如果你正在检查服务器端,你会在POST时检查ModelState.IsValid吗?在您检查此属性之前,验证不会实际触发。
发布于 2012-04-20 02:41:22
您使用的是MVC2还是MVC3?这两者之间有细微的区别。在这两种情况下,都必须包含适当的jQuery或Ajax验证JavaScript脚本才能获得客户端验证。
https://stackoverflow.com/questions/9706070
复制相似问题