2013-03-15 55 views
1

我有這樣的模型(簡體)與淘汰賽ASP.NET MVC剃刀形式不會驗證

public class User 
{ 
    [Required] 
    public string UserName { get; set; } 

    // Other fields 
} 
與淘汰賽 viewModel

的MVC Razor視圖,看起來像這樣:

@using (Html.BeginForm("MyAction", FormMethod.Post, new { id = "profileEditorForm" })) 
{ 
    @Html.ValidationSummary(false) 

    @Html.LabelFor(n => n.UserName) 
    @Html.TextBoxFor(n => n.UserName, new { data_bind = "value: UserName" }) 
    @Html.ValidationMessageFor(n => n.UserName) 

    @* Other fields *@  

    <p> 
    <input type="submit" value="Save" alt="" title="" /> 
    <a href="/">Cancel</a> 
    </p> 
} 


<script type="text/javascript"> 

    $(function() { 
    var vm = new viewModel(@(Html.Raw(Json.Encode(@Model)))); 
    ko.applyBindings(vm); 

    $("#profileEditorForm").validate({ 
     submitHandler: function(form) { 
     alert('Validating ' + ko.toJSON(vm)); 
     if (vm.save) 
      window.location.href = "/"; 
     return false; 
     } 
    }); 
    }); 

    var viewModel = function(model) { 
    var self = this; 
    self.UserName = ko.observable(model.UserName); 
    // Other fields 

    self.save = function() { 
     alert('Saving ' + ko.toJSON(self)); 
    } 
    }; 
}; 
</script> 

我無法讓它通過驗證功能(警報插入指示)給我客戶端驗證,然後直接保存並回發給MVC操作,這是無效的。

你能幫我解釋一下如何在這個表單上啓用客戶端驗證(它在web.confir中啓用)。難道淘汰賽那廢墟天(儘管所有的綁定工作完全正常,抑或是一些我在看,並沒有看到?

幫助不勝感激!

回答

2

驗證不工作淘汰賽綁定....

你要複製在客戶端驗證,更快的方法是使用基因敲除驗證插件,但它是緩慢的,當你有大量的數據..

https://github.com/ericmbarnard/Knockout-Validation

或者你可以只使用jquery驗證。

0

模型驗證不會工作在淘汰賽結合,你必須下載knockoutValidation.js文件,並用基因敲除驗證

實例:KnockoutJS

驗證用戶名

var self = this; 

self.UserName = ko.observable(UserName).extend({ 
    required: { 
     message:"Please enter User Name" 
    } 
});