2014-03-07 23 views
0

我在模型上有一個帶有DataAnnotation的BeginForm,但它們不能正常工作。AjaxBegin表單和DataAnnotation不起作用

model.cs

public class modelx 
{ 
..... 
[Required(AllowEmptyStrings = false, ErrorMessage = "Time_Step is required"] 
public String time_step_serialization { get; set; } 
..... 
{ 

view.cs

<script text="text/javascript"> 
    function OnSuccess() { 
    windows.location.href = '@Url.Action(.....); 
} 
</script> 
<table class....> 
    @using (Ajax.BeginForm(.........., new AjaxOptions() 
    { 
    .... 
    OnSuccess="OnSuccess" 
    })) 
    { 
     @Html.ValidationSummary() 
     <td> 
     @Html.TextBoxFor(model => model.time_step_serialization) 
     @Html.ValidationMessageFor(model => model.time_step_serialization) 
     </td> 
     ..... 
     </td> 
    } 
</table> 

Controller.cs 我不想檢查什麼服務器端。

我設置好的在web.config中正確的配置,我輸入正確的庫JS:

  1. jQuery的1.7.1.min.js
  2. jquery.unobtrusive,ajax.min.js
  3. jquery.validate.js
  4. jquery.validate.unobtrusive.js

問題是什麼?

在運行時現場生成的HTML是:

<input data-val="true" data-val-required="Time_step is required" id="time_step_serialization" name="time_step_serialization" type="text" value> 
<span class="field-validation-valid" data-valmsg-for="time_step_serialization" data_valmsg_replace="true"></span> 
+0

究竟是什麼問題? –

+0

視圖部分,通過Ajax加載? 此外,在一個側面說明,你的表格是在一張桌子裏面,這是一個有趣的概念... –

+0

@HenkMollema我的驗證不工作!當我提交表格時,即使字段爲空,我也可以做到! –

回答

0

嘗試發送數據之前使用有效

function save(){ 
    var valid = $("#FormName").valid(); 
    if (!valid) return false; 

    // post data 
}