在視圖中有三個部分視圖,通過單選按鈕選擇切換。每個局部視圖都有自己的提交輸入,其中兩個局部視圖包含一個tinyMCE textarea。當我只有一個部分包含一個tinyMCE textarea時,我能夠使用.triggerSave()來驗證該textarea,但現在我添加了第二個tinyMCE textarea,我無法讓任何一個tinyMCE textarea通過驗證。無法在MVC3中驗證tinyMCE textarea
我嘗試了許多關於SO的類似問題的解決方案,但是我沒有成功地讓這些textareas通過驗證。
這裏是關於第一部分TinyMCE的相關代碼:
<script type="text/javascript">
$(document).ready(function() {
tinyMCE.init({
mode: "specific_textareas",
editor_selector: "mceEditorForAddRow",
theme: "simple",
width: "500",
height: "300"
});
});
@using(Html.BeginForm("_AddSchemaRow","Database_Schema")
{
@Html.ValidationSummary(true)
<script type="text/javascript">
$("#CreateRow").click(function() {
tinyMCE.triggerSave();
});
</script>
<table>
....
....
<tr>
<td>
@Html.LabelFor(model => model.SchemaElement)
</td>
<td>
@Html.TextAreaFor(model => model.SchemaElement, new { @class = "mceEditorForAddRow" })
@Html.ValidationMessageFor(model => model.SchemaElement)
</td>
</tr>
....
....
</table>
<p>
<input id="CreateRow" type="submit" value="Create" />
</p>
}
這裏是位指示的該第一部分的操作:
public ActionResult _AddSchemaRow(int id)
{
SchemaRow schemaRow = new SchemaRow();
schemaRow.DatabaseSchemaID = id;
schemaRow.SchemaIndex = DatabaseSchema.GetSchemaHeadersByDatabaseSchemaID(id).Count() + 1;
return PartialView(schemaRow);
}
這裏是控制器的POST第一部分的操作:
[HttpPost]
[ValidateInput(false)]
public ActionResult _AddSchemaRow(SchemaRow schemaRow)
{
if (ModelState.IsValid)
{
DatabaseSchemaViewModel vm = new DatabaseSchemaViewModel(DatabaseSchema.GetDatabaseSchemaByID(schemaRow.DatabaseSchemaID));
vm.SchemaRowsAndHeaders = DatabaseSchemaViewModel.GetSchemaRowsAndHeadersBySchemaID(schemaRow.DatabaseSchemaID);
if (SchemaRow.Create_SchemaRow(schemaRow))
{
return RedirectToAction("Edit", new { id = schemaRow.DatabaseSchemaID });
}
else
return PartialView(schemaRow);
}
else
return PartialView(schemaRow);
}
第二部分被設置就像上面的第一部分,除了包含一個「SchemaHeader」而不是「SchemaRow」在所有適用領域,包括提交輸入的ID是「CreateSchemaHeader」。我認爲示例代碼應該提供我的問題的足夠的描述。如果需要,我可以添加其他部分的代碼。預先感謝您尋求解決方案的任何幫助。