【问题标题】:ASP.NET MVC: How to validate an Ajax form with a specified UpdateTargetID?ASP.NET MVC:如何使用指定的 UpdateTargetID 验证 Ajax 表单?
【发布时间】:2010-04-13 20:35:16
【问题描述】:

我试图弄清楚如何在用户提交具有 UpdateTargetID 属性集的 Ajax 表单后显示验证错误。

我不知道如何在不将 Create PartialView 返回到 results div 的情况下使用验证错误更新 Ajax 表单。如果表单是有效的,那么它应该返回Records PartialView。

创建.ascx

<%  Using Ajax.BeginForm("Create", 
                         "Record", 
                         New Record With {.UserID = Model.UserID}, 
                         New AjaxOptions With {
                             .UpdateTargetId = "results", 
                             .LoadingElementId = "loader"
                         })%>        
    Date Located
    <%= Html.TextBoxFor(Function(model) model.DateLocated)%>
    <%= Html.ValidationMessageFor(Function(model) model.DateLocated) %>

    Description
    <%= Html.TextBoxFor(Function(model) model.Description)%>
    <%= Html.ValidationMessageFor(Function(model) model.Description) %>

    <input id="btnSave" type="submit" value="Create" />          

    <span id="loader" class="loader">Saving...</span>
<%End Using%>

Records.ascx

<div id="results">
    ...
</div>

RecordController.vb

Function Create(ByVal newRecord As Record) As ActionResult
    ValidateRecord(newRecord)

    If Not ModelState.IsValid Then
        Return PartialView("Create", newRecord)
    End If

    _repository.Add(newRecord)
    _repository.Save()

    Dim user = _repository.GetUser(newRecord.UserID)
    Return PartialView("Records", user)
End Function

【问题讨论】:

    标签: asp.net-mvc validation


    【解决方案1】:

    如果您不刷新包含带有验证消息的元素的 DOM 部分(在您的情况下是表单),则无法显示验证错误。因此,您可以将整个表单和结果 div 放在将被刷新的部分中。你也可以看看this post

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-09
      • 1970-01-01
      • 2010-09-22
      • 1970-01-01
      • 2012-02-28
      相关资源
      最近更新 更多