1

我在剑道模板中使用 mvc html 文本框助手。我得到不正确的正则表达式验证的验证属性值。例如 "^([a-zA-Z0-9\s-]){0,}$" 变成 "^([a-zA-Z0-9s-]){0,}$" - 符号 "\"失踪。当我试图在服务器端转义符号时,它在客户端变得有效而在服务器上无效,但我需要两者都有效的正则表达式。我该如何解决这个问题。我需要使用 mvc 助手,因为它从模型元数据中检索验证属性。

4

1 回答 1

1

实际上,剑道模板中的斜线用于转义特殊符号。在你的情况下,我建议你用额外的页岩来逃避斜线。

这是我尝试过的:

<form id="myForm" action="/" method="post">
    <div id="result">  
    </div>


<input type="submit" value="Go" />
</form>

<script id="foo" type="text/kendo">
    templatE:

    @Html.TextBoxFor(m=>m.Name)
</script>

<script type="text/javascript">
    var html = $('#foo').html().replace(/\\/g, '\\\\');   
    html = html.replace(/#/g, /\#/);
    var template = kendo.template(html);

    $('#result').html(template({}));
    $('#myForm').kendoValidator();
</script>

模型装饰有以下属性:

[RegularExpression(@"^([a-zA-Z0-9\s\-]){0,}$")]
public string Name { get; set; }
于 2013-05-08T08:01:29.850 回答