2016-02-07 70 views
0

我有一个表格为什么这对同一页面发出GET请求?

<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问题上正在取得同一页的形式是,例如

/帐号/注册?PNAME = klaskdljaskldjas &从eaddr = akdalkkldjkl%40hotmail.com

这到底是怎么回事?

+0

当您提交表单时控制台中是否有任何JS错误? – nimeshjm

回答

1

RedirectToAction将无法从ajax请求工作,您必须在成功ajax调用后从客户端重定向。

此外,你失去了一对“})”在您的javascript

+1

为了增加这个,我建议返回一个Json对象,要么成功,要么失败,然后使用重定向动作,然后在成功/完成函数中由Ajax进行评估。 – Toxicable

相关问题