asp.net-mvc – 使用带有angularJS的jQuery验证的razor视图

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – 使用带有angularJS的jQuery验证的razor视图前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在我的MVC应用程序中使用AngularJS并尝试使用两者中最好的.我非常希望你能在MVC中在viewmodels中设置验证逻辑,并在剃须刀视图中轻松地使用jQuery验证生成客户端验证.我使用AngularJS来获取路由等的SPA行为,但是当我创建一个剃刀视图时,我用它来注入一个页面
< div data-ng-view =“data-ng-view”>< / div>

然后jQuery验证停止工作,即使脚本文件是注入视图的页面上的引用.请参阅下面的剃刀视图:

@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>

解决方法

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

为了达到你想要的效果,我认为有人(不是我)必须编写相当于jQuery Unobtrusive Validation library的AngularJS,它本身使用的是jQuery Validate plugin.这不是一件容易的事.我个人并不认为很快就会出现插件角度验证,特别是因为它更多地与标记有关,而与JS配置对象关系不大.

可能您可以在视图使用the $viewContentLoaded event加载完成后重新初始化验证.但请不要.

原文链接:https://www.f2er.com/aspnet/246810.html

猜你在找的asp.Net相关文章