【问题标题】:xVal and the ViewModel pattern - can it be done?xVal 和 ViewModel 模式——可以做到吗?
【发布时间】:2009-05-19 00:57:28
【问题描述】:

我一直在将 xVal 添加到 NerdDinner 应用程序中 - 到目前为止一切顺利,我在一行中使用 jQuery.validate 进行了客户端验证,这真的很漂亮。但我似乎无法让 xVal 验证一个复杂的对象。假设我有一个如下所示的 Dinner 对象:

public class Dinner
{
     [Required]
     public string Title { get; set; }
}

还有另一个对象,一个容器:

public class DinnerWrapper
{
     public Dinner Dinner { get; set; }
     public string Name { get; set; }
}

如果我的控制器将Dinner 传递给视图,我可以让 xVal 在我的表单末尾执行客户端验证,如下所示:

<% using (Html.BeginForm())
       { %>
    <fieldset>
        <p>
            <label for="Title">
                Dinner Title:</label>
            <%= Html.TextBox("Title") %>
            <%= Html.ValidationMessage("Title", "*") %>
        </p>
    </fieldset>
    <% } %>
<%=Html.ClientSideValidation<Dinner>()%>

但是当我通过 DinnerWrapper 时,我无法让它工作 - xVal 不使用以下设置执行客户端验证:

<% using (Html.BeginForm())
       { %>
    <fieldset>
        <p>
            <label for="Title">
                Dinner Title:</label>
            <%= Html.TextBox("Title", Model.Dinner.Title) %>
            <%= Html.ValidationMessage("Title", "*") %>
        </p>
    </fieldset>
    <% } %>
<%=Html.ClientSideValidation<DinnerWrapper>()%>

有什么想法吗?到目前为止,我已经成功地将 xVal(和 NHaml)集成到了 NerdDinner 应用程序中,但我似乎遇到了障碍。

【问题讨论】:

    标签: asp.net-mvc xval


    【解决方案1】:

    原来我不必更改 ClientSideValidation 行 - 它的工作原理如下:

    <%=Html.ClientSideValidation<Dinner>()%>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-09
      • 1970-01-01
      相关资源
      最近更新 更多