1

我知道这个话题有点复杂。我会尽量保持简单,并根据需要添加细节。

我有一个 ASP.NET MVC 4 网站,它使用 Web API 进行数据访问,并在前端使用 KnockOutJS 来保持 AJAX 风格的嗡嗡声。

由于我使用的是 Web API,而不是使用 MVC 中的经典脚手架,因此我为每个可以执行所有 CRUD 操作的模型创建了一个管理页面。一般来说,这非常有效。模式弹出窗口用于输入信息以创建新对象。更新是在网格中“内联”完成的。

在模式对话框中输入新信息时,表单验证按预期工作。例如,当数据标记为 [Required()] 时将字段留空,提交时将显示错误。

然而,数据的内联编辑并没有验证。在这种情况下,我实际上使用了两个字段。<span> 标签用于显示数据。单击“编辑”链接时,跨度被隐藏,而是显示 < input > 标记。这可能与问题有关。(可见性通过 KnockOutJS 控制。Editable() 是一个布尔值)

         <div class="span3">
                <span data-bind="text: Name, visible: !Editable()"></span>
                @Html.TextBoxFor(model => model.Name, new { data_bind = "value: Name, visible: Editable()", @class="fullwidth"})
                @Html.ValidationMessageFor(model => model.Name)
            </div>

请注意,所涉及的数据 (model.Name) 是 KO observable。不确定这是否也是一个问题。

有没有人有让这些技术很好地结合在一起的经验?

4

0 回答 0