Вот сценарий.Я хочу использовать CKEditor для расширенного текстового поля в форме, но по какой-либо причине я не могу получить содержимое из текстовой области на сервер и вернуться на страницу без проблем с кодированием.Вот небольшой пример программы, которую я написал, чтобы попытаться выяснить, что происходит.Во-первых, моя модель просмотра:
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 (т.е.
и т. Д.).Вот как выглядит форма до публикации:
до публикации http://www.matthewkimber.com/images/so/pre-post.png
И вот каков результат в div под кнопкой «Отправить»:
опубликовать результат http://www.matthewkimber.com/images/so/posted.png
Я установил точку останова в Visual Studio, и она отображается в виде пустых угловых скобок (без кодирования элементов HTML, только символы).
точка остановарезультаты http://www.matthewkimber.com/images/so/dataInsideTheActionMethod.png
Это, конечно, урезанный тест.Я попытался закодировать его, расшифровав как в представлении, так и в контроллере, но безрезультатно.