2010-06-19 50 views
1

在他的博客文章中,Scott Guthrie介紹瞭如何enable validation using DataAnnotations如何在AJAX文章中使用服務器端驗證?

例子:

public class Product 
{ 
    [Display(Name="Product Number")] 
    [Range(0, 5000)] 
    public int ProductID { get; set; } 

    [Display(Name="Name")] 
    [Required] 
    public string ProductName { get; set; } 

    [Display(Name="Price")] 
    [DataType(DataType.Currency)] 
    public double ListPrice { get; set; } 
} 

在評論這個博客帖子@Ke寫道:

如何在服務器端驗證與阿賈克斯崗位工作?即,如何將驗證錯誤發送回客戶端?

斯科特答道:

是 - 你可以處理這個問題。我相信菲爾·哈克將他的名單放在了博客上。

雖然我找不到這篇博文。我如何將服務器端驗證與AJAX文章結合起來?

我見過的最佳選擇似乎涉及使用partials將表單發送回客戶端。我寧願使用客戶端JavaScript來啓用錯誤消息。

回答

0

數據註釋驗證的工作方式是通過將特殊css類應用於包含錯誤的字段,並且錯誤消息由生成相應div的html助手顯示。所以最好的選擇是返回包含表單的部分視圖,以便顯示錯誤消息。

如果您想要使用JSONXML,您必須在響應結構中手動傳遞驗證錯誤,並在成功回調中使用javascript手動處理。

就客戶端驗證而言,它將起作用,因爲如果驗證失敗,表單將不會被提交(使用ajax或不)。