我有一张表格
<form id="registration-form">
<fieldset class="form-group">
<label for="name">Name</label>
<input type="text" class="form-control" name="pname" id="name" placeholder="Enter Partner Name Here">
</fieldset>
<fieldset class="form-group">
<label for="email">Email Address</label>
<input type="text" class="form-control" name="eaddr" id="email" placeholder="Enter Email Address Here">
</fieldset>
<button class="btn btn-primary" type="submit">Take Survey</button>
<p><span class="errmsg" id="reg-error"></span></p>
</form>
我的意图是提交它会调用AJAX调用
$('#registration-form').submit(function(ev){
ev.preventDefault();
$.ajax({
url : '/Account/AddPartner',
method : 'POST',
data : {
pname: $('input[name="pname"]').val(),
eaddr: $('input[name="eaddr"').val()
},
// ...
});
如果成功将它们重定向到新页面,如果不成功则返回显示的错误消息。处理此问题的控制器是
[HttpPost]
public ActionResult AddPartner ( string pname, string eaddr )
{
Guid? newpid = this._Db.AddPartner(pname, eaddr);
if ( newpid != null )
{
return RedirectToAction("FillOut", "Answers", new { pid = newpid }); // should redirect to /Answers/FillOut?pid=newpid
}
else
{
return Json(new { msg = "Failed get id of partner"} );
}
}
出于某些奇怪的原因,发生的事情是,在提交表单时,正在对表单所在的同一页面进行GET问题,例如,
/Account/Register?pname=klaskdljaskldjas&eaddr=akdalkkldjkl%40hotmail.com
这里发生了什么?
答案 0 :(得分:1)
RedirectToAction无法在ajax请求中运行,您必须在成功调用ajax后从客户端重定向。
另外,你在javascript
中丢失了一对“})”