TinyMCE应该如何在ASP.NET MVC页面上工作?

时间:2010-06-25 12:05:31

标签: asp.net-mvc tinymce

在上一个问题中,有人向我指出TinyMCE是一个不错的免费WYSIWYG编辑器。从那时起,最简单的部分就是下载资源,并在ASP.NET MVC示例页面上显示一个编辑器。然而,我还没有能够使它工作(即使在网上冲浪 - 即使在TinyMCE的网站上,我没有看到第一次用户的任何东西)。

好吧,也许最重要的一点是要知道这件事应该如何运作。例如,我在TextArea所在的同一个Html.BeginForm中放置了一个按钮。但是当我点击它时,没有发生回发事件。 所以,这是我的问题:

编辑背后的概念是什么?

  1. 如何发布内容? (使用按钮,链接???)
  2. 如何收到我的操作方法中发布的值? (使用本地字符串变量 - (模型绑定?)
  3. 我应该期待什么? (文本,HTML片段,两者都是???)
  4. 如果有人可以为我提供资源,那就太好了。但是,就目前而言,我想知道这是如何运作的。

    感谢您的帮助。

2 个答案:

答案 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一样。

相关问题