0

我在 mvc3 中使用 Ajax 表单。

下面是代码。

<% 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);
        }

    }
4

1 回答 1

0

首先,您需要在模型类 ContactInfoViewModel 中创建一个名为 SubmissionType 的属性,如下所示:

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传递。

希望现在这可以解决您的问题。

于 2013-05-29T07:27:48.000 回答