我在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的元素,并且仍然具有客户端和服务器端验证功能。
感谢任何帮助。
答案 0 :(得分:0)
我的0.02美元:选择一个外壳并使视图模型与页面匹配。 C#和JS都区分大小写,尝试混合案例并不会很好。其中一个人将不得不改变案件。你可以解决这个特定的问题,但这不会是问题的结束。