2
使用MVC/Json/Jquery。
使用表單創建一個新的「組」。
表單處於〜Group/Manage,張貼到〜Group/Create的表單 在處理此事時,返回的Json結果工作正常,在Jquery中處理,沒有URL重定向。
現在,每次運行它時,它都會重定向到〜Group/Create並顯示Json結果。
ASP.NET MVC jQuery JSON結果重定向URL
控制器組/創建
[HttpPost]
public ActionResult Create([Bind(Include="name,description")] GroupModel groupmodel)
{
...
return Json(new { success = true, message = groupmodel.name }, JsonRequestBehavior.AllowGet);
}
表格
<form id="frm_createGroup" action="/Groups/Create" method="post">
<h2>Create Group</h2>
<div class="form-group">
@Html.LabelFor(model => model.name, new { @for = "name" })
@Html.TextBoxFor(model => model.name, new { @class = "form-control", @placeholder = "Group Name" })
@Html.ValidationMessageFor(model => model.name)
</div>
<div class="form-group">
@Html.LabelFor(model => model.description, new { @for = "description" })
@Html.TextBoxFor(model => model.description, new { @class = "form-control", @placeholder = "Group Description" })
@Html.ValidationMessageFor(model => model.description)
</div>
<span id="createGroupMessage"></span>
<button type="submit" class="btn btn-primary pull-right">Create</button>
</form>
Jquery的處理形式
$(document).ready(function(){
$('#navGroups').makeActiveMenuItem();
var options = {
success: groupCreateSubmitted
,error: groupCreateError
}
$('#frm_createGroup').ajaxForm(options);
});
function groupCreateSubmitted(responseText, statusText, xhr, $form) {
if (responseText.success)
{
$('#createGroupMessage').html = "Group Created";
}
else
{
$('#createGroupMessage').html = responseText.message;
}
}
要清楚,我不希望URL重定向,我只是想讓Jquery趕上回報(之前是這樣,不知道爲什麼它改變了......)
謝謝!
顯然它做了一個正常的提交。你使用什麼插件,以及如果你在控制檯中遇到任何錯誤? –
使用jquery表單插件(http://malsup.com/jquery/form/),看不到任何錯誤:(嗯,我看到它掛在外部腳本引用到表單插件,可能會嘗試並獲得本地副本並看看是否修復它 – michaelBurns
根據[文檔](http://malsup.com/jquery/form/#api),_「。ajaxForm()準備通過AJAX提交的表單,通過添加所有的必須的事件監聽器,它不會提交表單「_。你有沒有在你的代碼中包含'ajaxSubmit()'? –