2015-10-01 37 views
0

这是我第一次在Asp.Net MVC-4中进行验证。Ajax表单验证消息不显示

这里的问题是验证消息不显示为 必填字段,即使我发布空表单时也是如此。

这是我使用的形式:

@using (Ajax.BeginForm("Save","DSA", 
    new AjaxOptions { OnSuccess = "OnSuccess", OnFailure = "OnFailure" })) 
{ 
    @Html.TextBoxFor(m => m.Insert_DSA.DSAId) 
    @Html.ValidationMessageFor(m => m.Insert_DSA.DSAId) 

    @Html.TextBoxFor(m => m.Insert_DSA.Firstname) 
    @Html.ValidationMessageFor(m => m.Insert_DSA.Firstname) 

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

和模型类:

[Required(ErrorMessage = "DSA ID is required")] 
    public string DSAId { get; set; } 

    [Required(ErrorMessage = "First Name is required")] 
    public string Firstname { get; set; } 

这是控制器:

public ActionResult Save(Models.clsDSAMaster MyModel,string submit) 
    { 
     string data = ""; 

     if (ModelState.IsValid) 
     { 
      MyModel.Insert_DSA.addDSA(MyModel.Insert_DSA, Session["EmpCode"].ToString()); 
      data="success"; 

     } 
    else 
    { 
     data="Faliure"; 
    } 


    return Content(data, "text/html"); 
    } 

任何人都可以请帮助我使它在MVC中的验证工作方面有所启发。

P.S:从表单提交的模型绑定和数据检索完美地工作。

+0

已包含相关的脚本? ('jquery.validate.js'和'jquery.validate.unobtrusive.js')。并且你的'Ajax.BeginForm()'没有指定一个目标元素来更新,所以'返回Content(data,“text/html”);'不会做任何事 –

+0

是的,我已经添加了JS文件 –

+0

@StephenMuecke所以如何指定目标元素 –

回答

0

您必须启用不显眼的JavaScript。你可以做到这一点的配置文件中:

<configuration> 
    <appSettings> 
     <add key="ClientValidationEnabled" value="true"/> 
     <add key="UnobtrusiveJavaScriptEnabled" value="true"/> 
    </appSettings> 
</configuration> 

,或者你也可以把它打开窗体的代码:

HtmlHelper.ClientValidationEnabled = true; 
HtmlHelper.UnobtrusiveJavaScriptEnabled = true;