2016-02-07 25 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

相關問題