我正在尝试在我的 MVC3 项目中使用 TinyMCE 编辑器。我让它在浏览器中显示并正常工作,但无法将其中的数据与表单一起回发。
我的观点(片段):
<div class="formRow">
<div class="formFieldFull">
<div class="editor-label">
@Html.LabelFor(model => model.Conditions)
</div>
<div class="large-multiline-field" style="width:396px;">
@Html.EditorFor(model => model.Conditions)
</div>
<div class="validationMsg">
@Html.ValidationMessageFor(model => model.Conditions)
</div>
</div>
</div>
如果没有 TinyMCE,条件字段将呈现为文本区域。使用 TinyMCE,它会用自己的东西覆盖文本区域,这似乎就是问题所在。原来的 textarea 在那里,但它已设置为 display:none。TinyMCE 在一些标签之间制作了字段内容的副本,这似乎是编辑内容所在的位置。当我发回表单时,原始文本区域仍然包含来自原始响应的字段内容,而不是应该传回的编辑内容。
这是使用 TinyMCE 渲染的代码(在 Firebug 中)的样子:
<div class="large-multiline-field" style="width:396px;">
<textarea id="Conditions" rows="2" name="Conditions" data-val-length-max="2000" data-val-length="Conditions must be under 2000 characters." data-val="true" cols="20" length="40" style="display: none;" aria-hidden="true">
----> ACTUAL CONTENT GOES HERE
</textarea>
<span id="Conditions_parent" class="mceEditor defaultSkin" role="application" aria-labelledby="Conditions_voice">
<span id="Conditions_voice" class="mceVoiceLabel" style="display:none;">Rich Text Area</span>
<table id="Conditions_tbl" class="mceLayout" cellspacing="0" cellpadding="0" role="presentation" style="width: 404px; height: 222px;">
<tbody>
<tr class="mceFirst" role="presentation">
TinyMCE Toolbars go here
</tr>
<tr class="mceLast">
<td class="mceIframeContainer mceFirst mceLast">
<iframe id="Conditions_ifr" frameborder="0" src="javascript:""" allowtransparency="true" title="Rich Text AreaPress ALT-F10 for toolbar. Press ALT-0 for help" style="width: 100%; height: 153px; display: block;">
<html>
----> EDITED CONTENT GOES HERE
</html>
</iframe>
</td>
</tr>
</tbody>
</table>
</span>
</div>
我应该做些什么来让 TinyMCE 在回发之前用编辑过的内容更新原始文本区域?