我在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);
}
}
答案 0 :(得分:0)
首先,您需要在模型类中创建名为SubmissionType的属性 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"
}))
正如您在上面的代码中所看到的,我还将模型作为 object routeValues 传递。
希望现在这可以解决你的问题。