【发布时间】:2014-11-11 16:20:23
【问题描述】:
(MVC5) 奇怪的问题。在一个视图中,我发布到“测试页”:
<form id="testbtn" method="post" action='http://localhost:11704/Home/testpage'>
<input type='submit' value="local testing" />
@Html.Hidden("key1", "value1")
@Html.Hidden("key2", "value2")
@Html.Hidden("key3", "value3")
@Html.Hidden("key4", "value4")
</form>
'testpage' 控制器动作是:
<HttpPost>
Function testpage(formdata As FormCollection) As ActionResult
Dim newdata As New StringBuilder()
For Each dataitem In formdata.Keys
newdata.Append(dataitem.ToString()).Append(" ")
newdata.Append(formdata(dataitem.ToString()))
newdata.AppendLine()
Next
ViewBag.message = newdata
Return View()
End Function
当我对显示的“测试页”使用“查看源代码”时,我可以看到:
<br />
key1 value1
key2 value2
key3 value3
key4 value4
但是在浏览器中显示是这样的:
key1 value1 key2 value2 key3 value3 key4 value4
任何想法为什么我的视图包中明显包含的新行没有显示在屏幕上?
谢谢。
最好的问候, 艾伦
【问题讨论】:
-
HTML 中的换行符默认被忽略。参见例如How to make Html.DisplayFor display line breaks?。
-
而不是追加新行,尝试:newdata.Append("
") -
将隐藏的元素放在一个样式为
white-space: pre-wrap;的div中
标签: html .net asp.net-mvc vb.net internet-explorer