我正在尝试将验证规则作为字符串从控制器发送到输入元素。字符串发送正确,但未正确呈现(您可以在下面的片段中看到它分离"字段是必需的"到"字段"是="&#34 ; 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">
在控制器中,我以类似于此的方式构建字符串:
stringBuilder.Append("data-rule-required=true");
stringBuilder.AppendLine();
stringBuilder.Append("data-msg-required=Field is required" );
我在剃刀中说明:
<input type="text" class="form-control valid"
id="..." name="..."
value="..."
@Model.ValidationRules />
@ Model.ValidationRules是格式为
的字符串&#34; data-rule-required = true data-msg-required =字段是必需的&#34;
有谁知道如何明确说我希望我的字符串不可分离? 或者也许我做错了,我应该以不同的方式发送字符串?
答案 0 :(得分:2)
问题是因为HTML属性值包含空格,这是无效的。第一个单词Field
被解释为值,而is
和required
被解释为其他属性。因此,浏览器会在其后添加=""
。
要解决此问题,您需要用双引号包装属性值:
stringBuilder.Append("data-rule-required=\"true\"");
stringBuilder.Append("data-msg-required=\"Field is required\"");
另请注意,在stringBuilder中使用AppendLine()
是多余的。 HTML并不关心空白。它所做的就是让你的代码更加冗长。