2015-10-01 142 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;