ViewBag 读取视图中的字符



我在我的视图中使用 ViewBag,发现如果它们立即读取 ViewBag 属性,它将从视图中读取字符,即

<input type="hidden" name="client" value=@(@ViewBag.myVal)/>

给定 myVal 的值为 "somevalue",ViewBag 属性将解析为 "somevalue/"。在 ViewBag 后添加一个空格或将其括在双引号中可解决此问题。

发生这种情况是因为 ViewBag 属性直到运行时才解析吗?它似乎理解">"是右括号,并且没有将其附加到字符串中。

谢谢

通常,HTML 属性值应使用双引号:

<input type="hidden" name="client" value="@(@ViewBag.myVal)"/>

这可以防止您描述的问题。由于您没有专门定义属性值的结束,因此 .NET 将选取/作为其中的一部分。正如@HereticMonkey指出的,无论如何你都不需要右斜杠。但是,无论如何,您都应该在您的价值观周围加上引号。如果你的值中有一个空格,它会在你不希望它的位置中断。例如,如果 myValue ="我的客户端名称",则最终会得到如下所示的呈现标记:

<input type="hidden" name="client" value=My Client Name/>

正如您可以猜到的,它最终将回发一个值"My",因为空格指定属性的末尾。在它周围加上引号。

相关内容

最新更新