尝试将AngularJS UI映射到从.NET Core API控制器返回的验证时出现问题。
AngularJS用作我们内部构建的API的UI界面,其中一个端点允许我们初始化复杂类型。此类型具有多个嵌套对象,我们希望允许单个API调用将此项添加到数据库。但是,在验证进入系统的项目期间,我们获得了有效的验证返回,只是不知道我们如何解析它以使用客户端代码。
示例代码:
ViewModelA
public class ViewModelA
{
public string Foo { get; set; }
}
ViewModelB
public class ViewModelB
{
public ICollection<ViewModelA> Bar { get; set; }
}
控制器的
public IActionResult Post(ViewModelB vm)
{
// Omitted validation processing
if(!ModelState.IsValid)
{
return BadRequest(ModelState);
}
// Omitted
}
AngularJS应用程序视图
<div ng-repeat="x in values.fooList track by $index">
<div class="form-group">
<input id="{{$index}}_foo" ng-model="x.foo"/>
<span><!-- Validation Here --></span>
</div>
</div>
如果我们在集合中的项目上面的上述帖子操作中收到验证错误,我们会得到以下内容:
{
"Bar[0].Foo" : "Error Message",
"Bar[1].Foo" : "Error Message"
}
我们无法使用Angular的模型系统,因为返回的JSON没有错误在项目列表中的概念。我必须遍历这些错误消息的想法是使用jQuery来处理输出的html,但如果我们使用AngularJS,这似乎是错误的。还有其他方法可以处理吗?
注意; 我们正在使用MVC返回AngularJS应用程序的视图,如果这有助于生成相关答案。