【发布时间】:2014-12-16 22:19:52
【问题描述】:
我是一个使用 DataAnnotation 来验证 MVC 中的 AlphaNumeric 字符的文本框。它工作正常,但是当我在文本框中输入 '<script type='text/javascript'>alert('This site sucks!');</script>' 时它不起作用。
[RegularExpression("^([a-zA-Z0-9 .&'-]+)$", ErrorMessage="Illegal character found in name. Please enter a valid name")]
public string Name { get; set; }
以下是我的查看代码
@Html.Raw(Html.TextBoxFor(p => p.Name, new { @class = "k-textbox", @style = "width:400px" }))
@Html.Raw(Html.ValidationMessageFor(p => p.Name))
一些帮助可能会有所帮助
【问题讨论】:
-
它们不相关,一个是模型(服务器端验证属性),用于在强类型视图中显示字段,另一个只是一个脚本,它是 100% 客户端,谁知道没有名为“名称”的属性
-
我已经编辑了我的问题
-
它适用于免费的正则表达式工具 expresso。这意味着客户端中可能没有发生验证逻辑。
-
您是否尝试在表达式开头添加@符号并删除转义字符?或者用@Html.raw 包装你的视图代码?
-
我猜测,我相信
.正则表达式符号匹配任何字符。你可能需要逃避它。此外,我将“k-textbox”类与 Kendo UI 相关联,它与 MVC 使用的 jQuery 验证插件不能很好地配合。请参阅the Kendo docs 了解更多信息。
标签: javascript c# regex model-view-controller