【发布时间】:2023-03-13 02:28:01
【问题描述】:
通常我只使用普通的@Html.BeginForm 表单并使用 ajax 发布它们,如下所示:
$("btnSubmit").on("click", function () {
var $form = $("form#frmNewArticle");
$form.submit();
});
$("form#frmNewArticle").submit(function () {
$.post($(this).attr("action"), $(this).serialize(), function (data) {
if (!data.IsOK) {
// in the case of an error, just display info about it to the user
}
else {
// if the post went well, go back to the article listing
window.location.href = '@Url.Content("~/Articles")';
}
return;
});
return false;
});
我在整个 MVC 网站上都取得了巨大成功,但现在我想要一个富文本编辑器,所以我现在实现了 tinymce,我想使用它的内联模式,它利用了 contenteditable html 元素:
<h2>Article Title</h2>
<h3 class="editable"></h3>
<h2>Article Content</h2>
<div class="editable"></div>
<input type="button id="btnSubmit" value="Create" />
<script>
tinymce.init({
selector: "div.editable",
theme: "modern",
plugins: [
["advlist autolink link image lists charmap print preview hr anchor pagebreak spellchecker"],
["searchreplace wordcount visualblocks visualchars code fullscreen insertdatetime media nonbreaking"],
["save table contextmenu directionality emoticons template paste"]
],
add_unload_trigger: false,
schema: "html5",
inline: true,
toolbar: "undo redo | styleselect | bold italic underline | alignleft aligncenter alignright alignjustify | bullist numlist | outdent indent | link image | print preview media",
statusbar: false
});
tinymce.init({
selector: "h3.editable",
theme: "modern",
add_unload_trigger: false,
schema: "html5",
inline: true,
toolbar: "undo redo",
statusbar: false
});
</script>
我在这里看到了其他问题,这些问题建议让可编辑元素填充页面上的实际输入字段,这些字段会被发布,但这对我来说似乎有点低效,但我在这方面并不是最了解的......
过去我已经指定了发布的确切数据(如下所示),但这对我来说也不合适......
$.ajax({
type: 'POST',
url: '/includes/contact.php',
data: { name: $('#contact-name').val(),
from: $('#contact-email').val(),
subject: $('#contact-subject').val(),
message: $('#contact-message').val()
}, // end data
success: function clearFields() {
// clear form fields
} // end success
}); // end ajax
有人可以告诉我,我是否只是对如何做到这一点持迂腐态度,或者我是否正在使用这两种方法中的任何一种?
如果我不是,那该怎么做?
提前致谢!
【问题讨论】:
-
你可以在
Controller Action使用[ValidateInput(false)]属性 -
@VenkataPanga 我正在努力将数据发送到控制器
-
是要将 HTML 标记内容发布到控制器操作,我们应该在带有
[ValidateInput(false)]的操作方法之前或在模型属性上应用属性装饰,例如[AllowHtml]
标签: jquery ajax asp.net-mvc tinymce contenteditable