2010-03-07 34 views

回答

0
  1. 这里有一个广泛的step by step tutorial解释如何实现与ASP.NET MVC 2验证和如何启用客户端验证。如果你正确地遵守它,你不应该有任何问题。

  2. 您可以使用OnSuccess选项:

    <% using (Ajax.BeginForm("SomeAction", new AjaxOptions { 
        OnSuccess = "success" 
    })) { %> 
    

    其中success回调看起来是这样的:

    <script type="text/javascript"> 
    function success(data) { 
        alert(data.get_object()); 
    } 
    </script> 
    

UPDATE:

这里有一个工作示例:

  • 型号:

    public class Product 
    { 
        [Required] 
        public string Name { get; set; } 
    } 
    
  • 控制器:

    public class HomeController : Controller 
    { 
        public ActionResult Index() 
        { 
         return View(new Product()); 
        } 
        [HttpPost] 
        public ActionResult Index(Product product) 
        { 
         return Json(new { status = "success" }); 
        } 
    } 
    
  • 查看:

    <script type="text/javascript" src="<%= Url.Content("~/scripts/MicrosoftAjax.js") %>"></script> 
    <script type="text/javascript" src="<%= Url.Content("~/scripts/MicrosoftMvcAjax.js") %>"></script> 
    <script type="text/javascript" src="<%= Url.Content("~/scripts/MicrosoftMvcValidation.js") %>"></script> 
    <script type="text/javascript"> 
    function success(data) { 
        alert(data.get_object().status); 
    } 
    </script> 
    
    <% Html.EnableClientValidation(); %> 
    <% using (Ajax.BeginForm(new AjaxOptions { OnSuccess = "success" })) { %> 
        <%= Html.LabelFor(x => x.Name) %> 
        <%= Html.TextBoxFor(x => x.Name) %> 
        <%= Html.ValidationMessageFor(x => x.Name) %> 
        <input type="submit" value="Create" /> 
    <% } %> 
    
+0

我阅读这篇文章,我喜欢嗨描述,但它只适用于html.beginborm,但是当我使用ajax.beginform-发布数据去控制器即使clienc验证显示错误 – kusanagi 2010-03-08 14:23:49

+0

请参阅我的更新说明一个工作示例用'Ajax.BeginForm'进行客户端验证。 – 2010-03-08 16:00:39

+0

nope,这里desision,可能是你感兴趣。文章http://haacked.com/archive/2009/11/19/aspnetmvc2-custom-validation.aspx但在评论中的解决方案从结束第二评论 – kusanagi 2010-03-09 06:06:10