MVC3.0显示内容页面时,去掉Html标签和在文本框中显示换行
第一个问题:在如果使用ckeditor 输入内容时候,存放的数据库的信息时含有Html 标签的,当我们在页面显示的时候,不希望看到标签,此时,我们可以在显示内容的字段是加上两个Div
即:
View Code
1 <div id="divContent1">
2 <div id="divContent2">
3 @Model.ViewResultSingle.CONTENT
4 </div>
5 </div>
6
7
8 <script type="text/javascript">
9
10 $(function ()
11 {
12 if ($("#divContent2")[0].outerText)
13 {
14 // ie
15 $("#divContent1").html($("#divContent2")0].outerText);
16 }
17 else
18 {
19 // Firefox
20 $("#divContent1").html($("#divContent2")0].textContent);
21 }
22 });
23
24 </script>
2 <div id="divContent2">
3 @Model.ViewResultSingle.CONTENT
4 </div>
5 </div>
6
7
8 <script type="text/javascript">
9
10 $(function ()
11 {
12 if ($("#divContent2")[0].outerText)
13 {
14 // ie
15 $("#divContent1").html($("#divContent2")0].outerText);
16 }
17 else
18 {
19 // Firefox
20 $("#divContent1").html($("#divContent2")0].textContent);
21 }
22 });
23
24 </script>
这种方法在返回详细详细页面,只显示一条数据时可以,但涉及到分页的问题,在其他页面显示的时候,我们需要循环每一个字段
即:
JS Code
1 $(".divContent2").each(function (i)
2 {
3 $(".divContent1").eq(i).html($(this).text());
4 });
5
6 $("#comments").ajaxStop(function ()
7 {
8 $(".divContent2").each(function (i)
9 {
10 $(".divContent1").eq(i).html($(this).text());
11 });
12 });
2 {
3 $(".divContent1").eq(i).html($(this).text());
4 });
5
6 $("#comments").ajaxStop(function ()
7 {
8 $(".divContent2").each(function (i)
9 {
10 $(".divContent1").eq(i).html($(this).text());
11 });
12 });
//comments当前整个页面的Div
@using (Ajax.BeginForm("Comment", null,
new AjaxOptions() { UpdateTargetId = "comments" }, new { id = "frmcomments" }))
{
}
此时应该理解 ajaxStop的用法!
相应的JS方法就是去掉标签的意思
第二个问题:在文本框中显示内容换行
即 :<pre>@item.CONTENT</pre>
第三个问题:显示内容超出显示范围,并且输入英文字母无法自动换行,已测试过,在IE 和FF下没有问题!
<div style="width:600px;word-wrap: break-word; word-break: break-all;white-space:pre-wrap;">@item.CONTENT</div>
个人总结:小的知识点容易忘记,须存储!