Я знаю, что это было проблемой для других, но я еще не нашел ничего, что решило бы мою проблему.
У меня есть частичный вид, который отображается в лайтбоксе (colorbox). Это простая форма. Я хочу, чтобы форма отправляла и возвращала немного данных. Данные будут использоваться при вызове последующих функций, и я хочу, чтобы основной DIV просто обновлялся сообщением об «успехе». Вот полный код частичного просмотра:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Solution2.Models.Category>" %>
<script type="text/javascript">
$('propcatform').submit(function(e) {
e.preventDefault();
$.ajax({
type: "POST",
url: $(this).attr("action"),
data: $(this).serialize(),
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function(data) { document.getElementById('main1').innerHTML = "Success"; },
failure: function() { document.getElementById('main1').innerHTML = "Failure"; }
})
});
</script>
<% using (Html.BeginForm(null, null, FormMethod.Post, new { id = "propcatform", name = "propcatform" }))
{%>
<div id="main1">
<fieldset>
<legend>Fields</legend>
<p>
<label for="CatTitle">Category Title:</label>
<%= Html.TextBox("CatTitle") %>
<%= Html.ValidationMessage("CatTitle", "*") %>
</p>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
</div>
<% } %>
Вот мой код контроллера. Код работает, поскольку он успешно добавляет данные формы в таблицу / базу данных. Как именно должна выглядеть моя «обратная» строка?
[AcceptVerbs(HttpVerbs.Post)]
public JsonResult Create(Category propcat)
{
Category resultcat = new Category();
_db.Categories.InsertOnSubmit(propcat);
_db.SubmitChanges();
resultcat = propcat;
return Json(new { CatID = resultcat.CatID, CatTitle = resultcat.CatTitle, message = "Category successfully created!" });
}
В настоящее время я на самом деле не использую какие-либо данные результата в моем коде частичного просмотра (хотя я ссылаюсь на него в своем параметре «success»). Я просто пытаюсь заставить его работать (и не предлагает мне сохранить результаты).
Спасибо.