我知道这对其他人来说也是一个问题,但我还没有找到任何可以解决我的问题的方法。
我有一个显示在灯箱(颜色箱)中的部分视图。这是一个简单的形式。我希望表单提交并返回一些数据。这些数据将用于调用后续函数,我希望主 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!" });
}
目前,我实际上并未在部分视图代码中使用任何结果数据(即使我在“成功”参数中引用了它)。我只是想让它工作(而不是提示我保存结果)。
Thanks.