针对驼峰案例属性名称的asp.net mvc客户端验证

时间:2010-09-08 16:00:18

标签: validation asp.net-mvc-2 properties modelbinders

我在asp.net mvc 2中使用MS发送的客户端验证。该模型有一个名为“FirstName”的属性。我们的客户端开发人员非常喜欢在元素id中使用camel-case,因此我们不是使用普通的html帮助器Html.TextBoxFor(m => m.FirstName),而是编写了html输入视图,而不是像<input type="text" id="firstName" name="firstName" />。模型绑定器可以正确绑定并获得正确的valud(我猜它不区分大小写,这是一件好事)。但是,当我们打开客户端评估并在最后发出Html.ValidateFor(m => m.FirstName)时,它仍然会生成属性的Pascal-case格式(预期)。

我查看了mvc 2源代码,显示ValidateFor()调用ModelMetadata.FromLambdaExpression(expression, htmlHelper.ViewData),后者又使用MemberExpression获取属性名称(这是pascal case)。我想知道是否有办法解决这个问题?最终目标是使用驼峰式ID作为html的元素,并且仍然具有客户端和服务器端验证功能。

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我的0.02美元:选择一个外壳并使视图模型与页面匹配。 C#和JS都区分大小写,尝试混合案例并不会很好。其中一个人将不得不改变案件。你可以解决这个特定的问题,但这不会是问题的结束。