2013-05-08 135 views
0

我没有收到验证消息?任何想法如何解决?请看下面的视图,模型和控制器代码。我还附加了js文件,可能是我缺少的文件?ASP.NET MVC中的模型验证

@model MvcApplication1.Models.Assesment 
<link href="../../Content/Site.css" rel="stylesheet" type="text/css" /> 
<script src="../../Scripts/jquery.validate.min.js" type="text/javascript"></script> 
<script src="../../Scripts/jquery.validate.min.js" type="text/javascript"></script> 

@using (Html.BeginForm()) 
{  
    @Html.TextBoxFor(m => m.name) 
    @Html.ValidationMessageFor(m=>m.name,"*Hello") 

} 
<input type="submit" value="submit" /> 

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Web.Mvc; 
using System.ComponentModel.DataAnnotations; 

namespace MvcApplication1.Models 
{ 
    public class Assesment 
    { 
    [Required] 
    public string name { get; set; } 
    } 
} 

public class RegisterController : Controller 
{ 

    [HttpGet] 
    public ActionResult Index() 
    { 
     return View(); 
    } 

    [HttpPost] 
    public ActionResult Index(Assesment assesment) 
    { 
     return View(); 
    } 
} 
+0

是这固定它 – user2224493 2013-05-08 15:38:36

+0

为什么您是否在表单之外提交输入内容? – 2013-05-08 15:42:55

回答

0

<input type="submit">应该是在表单内。

此外,你应该处理POST

[HttpPost] 
public ActionResult Index(Assesment assesment) 
{ 
    return View(assesment); 
} 

时顺便说无效的模型传递给视图,典型的HttpPost动作看起来是这样的:

[HttpPost] 
public ActionResult Index(Assesment assesment) 
{ 
    if(ModelState.IsValid) 
    { 
     // Handle POST data (write to DB, etc.) 
     //... 
     // Then redirect to a new page 
     return RedirectToAction(...); 
    } 

    // show the same view again, this time with validation errors 
    return View(assesment); 
}