javascript - 从 Controller 发送的字符串在处理为 HTML 时被分离

标签 javascript c# jquery html validation

我正在尝试将验证规则作为字符串从 Controller 发送到输入元素。字符串已正确发送,但未正确呈现(您可以在下面的代码片段中看到它将“Field is required”与“Field” is=""required=""分开)。

这是 HTML 渲染后得到的结果:

<input type="text" class="form-control valid" id="Code" name="Code" 
     value="INDiamnana" 
     data-rule-required="true" 
     data-msg-required="Field" is="" required="" 
     aria-required="true">

在 Controller 中,我以类似于此的方式构建字符串:

 stringBuilder.Append("data-rule-required=true");
 stringBuilder.AppendLine();
 stringBuilder.Append("data-msg-required=Field is required" );

我在 Razor 中指定:

<input type="text" class="form-control valid" 
 id="..." name="..." 
 value="..." 
 @Model.ValidationRules />

@Model.ValidationRules 是格式为

的字符串

"data-rule-required=true data-msg-required=Field is required"

有谁知道如何明确地说我希望我的字符串不可分离? 或者也许我做错了,我应该以不同的方式发送字符串?

最佳答案

问题是因为HTML属性值有空格,这是无效的。第一个单词 Field 被解释为值,而 isrequired 被解释为其他属性。因此,浏览器会将 ="" 添加到它们之后。

要解决此问题,您需要将属性值括在双引号中:

stringBuilder.Append("data-rule-required=\"true\"");
stringBuilder.Append("data-msg-required=\"Field is required\"");

另请注意,在 stringBuilder 中使用 AppendLine() 是多余的。 HTML 不关心空格。它所做的只是让您的代码更加冗长。

关于javascript - 从 Controller 发送的字符串在处理为 HTML 时被分离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42951171/

相关文章:

javascript - jQuery - 将条件存储在字符串中并稍后执行

c# - 有条件的

c# - 带 SDK 的 Dynamics CRM 2011 附加文件

javascript - 使用 fullpage.js 的水平 slider

jquery - 大量项目的 Select2 性能

javascript - Jquery 事件不起作用

javascript - 在 JavaScript 中的日期选择器上设置 minDate

c# - 添加(BezierSegment 到 a) Canvas 路径

javascript - 如果输入不存在则插入

javascript - 在 ubuntu 中使用 Flask 将 .js 包含在 .html 中时出现引用错误