gpt4 book ai didi

asp.net-mvc - 使用带有 AngularJS 的 jQuery 验证的 Razor View

转载 作者:行者123 更新时间:2023-12-04 13:19:44 25 4
gpt4 key购买 nike

我在我的 MVC 应用程序中使用 AngularJS 并尝试使用两全其美。我真的很喜欢在 MVC 中如何在 View 模型中设置验证逻辑,并通过 jQuery 验证在 Razor View 中轻松生成客户端验证。我使用 AngularJS 通过路由等来获取 SPA 行为,但是当我创建一个 Razor View 时,我用它来注入(inject)页面:
<div data-ng-view="data-ng-view"></div>
然后 jQuery 验证停止工作,即使脚本文件是注入(inject) View 的页面上的引用。请参阅下面的 Razor 观点:

@model BandViewModel
<div data-ng-controller="App.BandCreateCtrl">
<form name="startBandForm">
@Html.ValidationSummary(true)
<br />
@Html.LabelFor(m => m.Name)
@Html.TextBoxFor(m => m.Name, new { data_ng_model = "band.Name" })
@Html.ValidationMessageFor(m => m.Name)
<br/>
<input data-ng-disabled="startBandForm.$invalid" type="submit" data-ng-click="createBand(band)" value="Create"/>
</form>
</div>

最佳答案

首先,IMO 使用 Razor 渲染您的模板充其量是充满危险的。通常,您希望为您的页面和指令模板使用静态 HTML,然后检索数据并将其作为 AJAX 发布到您的 API。实际上,ASP.NET Web API 非常擅长这一点。如果您的底层模型具有验证功能,那么糟糕的 Web API 调用将引发异常,您可以在 $http 或 $resource 处理程序中捕获并显示给用户。将标准 HTTP 表单帖子与 AngularJS 混合将是……困难的。

为了实现你想要的,我认为有人(不是我)必须编写相当于 jQuery Unobtrusive Validation library 的 AngularJS。 ,它本身正在使用 jQuery Validate plugin .不是微不足道的。我个人认为不会很快出现插入式 Angular 验证,特别是因为它更多地与标记有关,而与 JS 配置对象的关系较少。

当 View 完成加载时,您可以使用 the $viewContentLoaded event 重新初始化验证。 .但请不要。

关于asp.net-mvc - 使用带有 AngularJS 的 jQuery 验证的 Razor View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17010229/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com