在上一个问题中,有人向我指出TinyMCE是一个不错的免费WYSIWYG编辑器。从那时起,最简单的部分就是下载资源,并在ASP.NET MVC示例页面上显示一个编辑器。然而,我还没有能够使它工作(即使在网上冲浪 - 即使在TinyMCE的网站上,我没有看到第一次用户的任何东西)。
好吧,也许最重要的一点是要知道这件事应该如何运作。例如,我在TextArea所在的同一个Html.BeginForm中放置了一个按钮。但是当我点击它时,没有发生回发事件。 所以,这是我的问题:
编辑背后的概念是什么?
如果有人可以为我提供资源,那就太好了。但是,就目前而言,我想知道这是如何运作的。
感谢您的帮助。
答案 0 :(得分:5)
TinyMCE采用标准的<textarea>
元素,并使用JavaScript将其转换为富文本编辑器。因此,在ASP.NET MVC视图中,您只需以正常方式创建textarea,例如
<% Html.TextAreaFor(m => m.Description) %>
当TinyMCE将其转换为textarea时,它仍将在textarea元素上保持相同的id和name属性:
<textarea id="Description" name="Description"></textarea>
所以模型绑定应该继续正常工作,它是上面代码示例中的name属性,当你发布时提交,TinyMCE不会改变它,所以你的POST数据看起来像这样:Description=<p>Hello world</p>&MyButton=Submit
(表单POST数据只是由&amp; ampsersands分隔的名称/值对。)
所以在你的Controller Action中:
[HttpPost]
public ActionResult SaveProduct(Product product)
{
string description = product.Description;
// Save Product to database (snip)
}
'description'变量将包含来自TinyMCE的原始HTML标记。所以这一切都应该正常工作,不知道为什么不是。您可以验证表单是否已设置并正常发布,例如。通过删除TinyMCE并只有一个标准的textarea。
另外,你有可能没有使用<asp:TinyMCE
WebForms控件吗?
答案 1 :(得分:1)
TinyMCE覆盖在textarea之上。
使用TinyMCE textarea,就像使用普通的textarea一样。