小编Chr*_*467的帖子

如何确定哪个javascript引擎,rhino或nashorn正在运行我的代码?

如何在浏览器中确定javascript引擎有几个问题.我必须编写必须在rhino和nashorn上运行的javascript代码.

如何确定我的代码是在rhino还是nashorn上运行?是否存在可以确定引擎的典型函数,变量,常量?

javascript rhino javascript-engine nashorn

6
推荐指数
1
解决办法
2339
查看次数

如何为模型状态字典生成字段名称?

新的辅助方法EditorFor,TextBoxFor在避免视图中的硬编码字段名称方面非常酷.

我正在编写验证函数,其中服务验证复杂的模型数据.如果字段存在错误,则服务应将此字段的错误推送到modelstate字典中.

是否有帮助方法生成完整的模型名称?

编辑:
Samplemodel:

class CustomModel {
  public InnerModel Inner { get; set; }
}
class InnerModel {
  public String Field1 { get; set; }
  public SomethingMoreToValidate[] More { get; set; }
}
class SomethingMoreToValidate {
  public int A { get; set; }
  public int B { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

视图中InnerModel.SomethingMoreToValidate [0] .A的输入字段名称为"InnerModel.SomethingMoreToValidate [0] .A".要将模型状态错误绑定到字段,我必须将具有此名称的错误放入ModelStateDictionary中.

在显示InnerModel数据的视图中,我可以写:

Html.EditorFor(m => m.SomethingMoreToValidate[0].A);
Run Code Online (Sandbox Code Playgroud)

如果重命名属性,编译器会警告我.在验证控制器或服务类中,我必须写:

ModelState.AddModelError(
  "InnerModel.SomethingMoreToValidate[0].A", 
  "There is a problem with this field");
Run Code Online (Sandbox Code Playgroud)

如果重命名某个属性,如果我没有像unittests这样的其他检查,则没有反馈.我想写:

ModelState.AddModelErrorFor(
  m => m.InnerModel.SomethingMoreToValidate[0].A, 
  "There is a problem …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc asp.net-mvc-3

3
推荐指数
1
解决办法
1355
查看次数