Система, над которой я работаю, - это CMS, в которую вы вставляете шаблоны, такие как шаблон формы контакта, и сохраняете их в базе данных. Этот шаблон закодирован на стороне сервера для обработки данных.
Теперь мой "contentDiv" внутри формы, куда были вставлены и сохранены все шаблоны, чем показано на странице, с тегом формы inint, обернутым как
@using (Html.BeginForm("Edit", "Home", FormMethod.Post, new { id = "first" }))
{
@Html.Hidden("someId", @Model.PageId)
}
<div id="contentDiv" style="width:100%">@Html.Raw(Model.Html)</div>
Над формой сохраняется как
$(function () {
$("form#first").submit(function (e) {
e.preventDefault();
var viewmodel = {
Id: $("#someId").val(),
Html: $("#contentDiv").val()
};
$.ajax({
url: $(this).attr("action"),
type: "POST",
data: JSON.stringify(viewmodel),
dataType: "json",
contentType: "application/json; charset=utf-8",
beforeSend: function () { $("#status").fadeIn(); },
complete: function () { $("#status").fadeOut(); },
success: function (data) {
var message = data.Message;
},
error: function () {
}
});
});
});
обратите внимание, что я переместил "contentDiv из тега формы, поскольку моя контактная форма, заключенная в тег формы, не может быть вложена в id = первую форму.
Есть ли решение для формирования вложения? . Если нет, то
Мой другой вопрос
contentDiv не заключен в тег формы, что означает, что если в браузере клиента отключен JavaScript, он не сможет публиковать данные contentDiv на сервер, и форма будет бесполезна.
Что делать?
Если я не переместлю contentDiv из тега формы, чем после вставки шаблона, структура будет вложена в формы
@using (Html.BeginForm("Edit", "Home", FormMethod.Post, new { id = "first" }))
{
<form id="contactform" action="/Home/Email" method="post" >
<div class="clear" style="padding-bottom:10px;"></div>
<div class="formCaption">Full Name</div>
<div class="formField"><input id="fullName" name="fullName" class="standardField" /></div>
<div><input id="sendBtn" value="Send" type="button" /></div>
</form>
}