1

我开始使用 SPA 模板(单页应用程序)开发 ASP.NET MVC4 解决方案。

起始模板使用一种便利贴设计来管理一些待办事项列表。

我以这种方式稍微修改了模板:

  • 不再有用于显示元素的便利贴设计
  • 但是列出所有元素的表格+删除+每个元素上的编辑按钮
  • 在表格的末尾:一个添加按钮

我现在可以像这样在表单标签中编辑一个元素:

<form data-bind="with: currentTodoList, validate: true">
    <h1>Edition</h1>
    <table>
        <tr>
            <td>ID</td>
            <td><b data-bind="text: todoListId"></b></td>
        </tr>
        <tr>
            <td>User ID:</td>
            <td><input class="required" data-bind="value: userId" /></td>
        </tr>
        <tr>
            <td>Title:</td>
            <td><input class="required" data-bind="value: title" /></td>
        </tr>
        <tr>
            <td>Category:</td>
            <td><input data-bind="value: category" /></td>
        </tr>
    </table>

    <p>
        <button data-bind="click: $parent.saveTodoList">Save</button>
        <button data-bind="visible: todoListId, click: $parent.deleteTodoList">Delete</button>
        <button data-bind="click: $parent.showGrid">Cancel</button>
    </p>
</form>

正如您在上面看到的,我在表单标签上设置了验证数据绑定,并且我有一些带有所需类的输入元素。

当我测试这个实现时,它没有按预期工作。例子:

  • 如果我清除(清空)userId 字段(这是必需的),我会收到一条红色验证消息(图 1)。好的。
  • 如果我再次填写此 userId 字段,红色验证消息就会消失。好的。
  • 然后,如果我清除(清空)标题字段(这也是必需的),我会在 userId 字段旁边显示红色验证消息(图 2)。挪威克朗。

在此处输入图像描述

在此处输入图像描述

反之亦然:userId <--> title。知道问题出在哪里吗?

这是下载我的测试 VS2012 解决方案以重现该问题的链接。

4

1 回答 1

1

好的,所以我对您的标记进行了一些操作,对视图模型进行了轻微修改(不使用列表,而是编辑单个条目)。

看看这个 jsfiddle - http://jsfiddle.net/Zxjrb/1/

我为 ID 和用户 ID 添加了验证消息的范围,跳过了标题和类别的范围。

<span data-bind='visible: todoListId.hasError, text: todoListId.validationMessage'> </span>

当 Id 或 UserId 字段为空时,您可以看到出现的消息,而标题/类别字段不会发生这种情况。

于 2013-03-03T15:29:51.883 回答