2013-05-29 38 views
0

我在mvc3中使用Ajax表單。表單提交後在「OnSuccess」函數中獲取按鈕ID

以下是代碼。

<% using (Ajax.BeginForm("Method", "Conroller", new AjaxOptions 
{ 
    UpdateTargetId = "PopupBody", 
    HttpMethod = "post", 
    OnSuccess = "OnSuccessContactInfoSave" 
}, new { @id = "frmContactInfo" })) 
{ %> 



function OnSuccessContactInfoSave(data, textStatus) { 

alert('completed with success.'); 
} 

現在,我有一個頁面上的2個按鈕是提交按鈕,另一個是普通按鈕。 現在,我想知道Onsuccess功能中的點擊按鈕。

我該如何獲得它在「OnSuccessContactInfoSave」功能?

由於提前


編輯:

這是我的看法

<% using (Ajax.BeginForm("SaveContactInfo", "ManageUser", new AjaxOptions 
{ 
    UpdateTargetId = "PopupBody", 
    HttpMethod = "Post" 
})) 
{ %> <div class="ciMain"> 

     <input type="submit" id="btnSaveAndClose" name="btn" value="Save" /> 
     <input type="submit" value="Save and continue to next step" name="btn" /> 
     <input type="button" value="Cancel" /> 
     </div> 
    <% } %> 

這是控制器

[AcceptVerbs(HttpVerbs.Post)] 
    public ActionResult SaveContactInfo(FormCollection userViewModel, ContactInfoViewModel model, string btn) 
    { 
     //string test = Request["btn"].ToString(); 
     try 
     { 

      return View("ContactInfo", model); 
     } 
     catch (Exception) 
     { 
      return View("ContactInfo", model); 
     } 

    } 
+1

我試着用這個:http://stackoverflow.com/a/14980550/1752787 –

+0

但是,獲取請求[「btn」] == null,在這一行:Response.AppendHeader(「X-Button」,Request [ 「BTN」]); –

+0

上午我錯過了什麼? –

回答

0

首先你需要創建一個屬性名稱Submis sionType模型類 ContactInfoViewModel這樣的:

public class ContactInfoViewModel 
{ 
    public string SubmissionType { get; set; } 
    //Your rest of properties 
} 
在您看來

現在,在您提交按鈕的東西通過這個屬性名是這樣的:

<input type="submit" name="SubmissionType" id="btnSumit" value="Submit"/> 
    <input type="submit" name="SubmissionType" id="btnOther" value="Other"/> 

記住這些按鈕必須在窗體標籤和也不要忘記綁定您的模型與視圖這樣的事情:

@model ClassNamespace.ContactInfoViewModel 

現在你必須調整你的操作方法是這樣的:

 [AcceptVerbs(HttpVerbs.Post)] 
    public ActionResult SaveContactInfo(ContactInfoViewModel model) 
    {   
     if (model.SubmissionType == "Submit") 
     { 

     } 
     else 
     { 

     } 
     try 
     { 

      return View("ContactInfo", model); 
     } 
     catch (Exception) 
     { 
      return View("ContactInfo", model); 
     } 
    } 

現在來到你的Ajax表單標籤,你也必須通過型號這裏,這樣就可以在的時間內得到你的模型的值表格提交。像這樣做:

@using (Ajax.BeginForm("SaveContactInfo", "ManageUser",Model, new AjaxOptions 
{ 
UpdateTargetId = "PopupBody", 
HttpMethod = "Post" 
})) 

正如你可以在上面的代碼中,我還通過模型對象routeValues看到。

希望現在,這將解決您的問題。