加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 为什么我不能在ASP.NET MVC 3中使用HtmlDecode

发布时间:2020-12-16 04:21:43 所属栏目:asp.Net 来源:网络整理
导读:这是场景.我想在表单上使用 CKEditor作为富文本字段,但无论出于何种原因,我无法将内容从textarea获取到服务器并返回到页面而不会出现编码问题.这是我编写的小样本程序,试图弄清楚发生了什么.首先,我的视图模型: HomeViewModel.cs namespace CkEditorTest.Mo
这是场景.我想在表单上使用 CKEditor作为富文本字段,但无论出于何种原因,我无法将内容从textarea获取到服务器并返回到页面而不会出现编码问题.这是我编写的小样本程序,试图弄清楚发生了什么.首先,我的视图模型:

HomeViewModel.cs

namespace CkEditorTest.Models
{
    public class HomeViewModel
    {
        [Required]
        [DataType(DataType.Html)]
        [Display(Name = "Note")]
        public string Note { get; set; }
    }
}

现在我的控制器:

HomeController.cs

using System.Web.Mvc;
using CkEditorTest.Models;

namespace CkEditorTest.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            return View(new HomeViewModel());
        }

        [HttpPost]
        [ValidateInput(false)]
        public ActionResult Index(HomeViewModel model)
        {
            return View(model);
        }
    }
}

最后,我的看法:

Index.cshtml

@model CkEditorTest.Models.HomeViewModel
@{
    ViewBag.Title = "CKEditor Test";
}
@section head
{
    <script type="text/javascript" src="@Url.Content("~/Scripts/ckeditor/ckeditor.js")"></script>
    <script type="text/javascript" src="@Url.Content("~/Scripts/ckeditor/adapters/jquery.js")"></script>

    <script type="text/javascript">
        $(document).ready(function () {
            $("#Note").ckeditor();
        });
    </script>
}

<h2>CKEditor Test</h2>

@using (Html.BeginForm())
{
    @Html.LabelFor(m => m.Note)<br /><br />
    @Html.TextAreaFor(m => m.Note)<br />
    <input type="submit" />
}

@if (!String.IsNullOrEmpty(Model.Note))
{
<div id="noteText">@Model.Note</div>
}

无论我做什么,我都无法在我的视图中将Model.Note属性显示为html.到达视图时,它是HTML编码的(即< p>等……).这是表格在帖子前的样子:

pre-post http://www.matthewkimber.com/images/so/pre-post.png

以下是“提交”按钮下方div中的结果:

post result http://www.matthewkimber.com/images/so/posted.png

我在Visual Studio中设置了一个断点,它显示为裸角括号(HTML元素上没有编码,只是字符).

breakpoint results http://www.matthewkimber.com/images/so/dataInsideTheActionMethod.png

当然,这是精简测试.我试过编码它,在视图和控制器中解码它无济于事.非常感谢您的帮助!谢谢!

解决方法

默认情况下,当您使用剃刀时,所有内容都会被编码.我想你正在寻找 Raw method.

使用Fiddler或Firebug检查响应也是一个好主意.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读