Ajax.BeginForm(),OnSuccess – 获取事件目标

我无法获得在Ajax.BeginForm()触发OnSuccess()方法的元素的目标。 所以这是代码片段:

 @using (Ajax.BeginForm("InsertModel", "Home", new AjaxOptions { HttpMethod = "POST", OnSuccess = "doWork(this,'SomeCustomText')" })) { 
} function doWork(e,customText) { alert(customText); //It shows 'SomeCustomText', so its good. alert(e); //[Object] object alert(e.prop("tagName")); //Object # has no method 'prop' alert(e.attr("tagName")); //Object # has no method 'attr' alert(jQuery(e).html()); //undefined alert(jQuery(e).prop("tagName")); //undefined alert(e.target); //undefined alert(jQuery(e).target); //undefined }

问题:

如何获得目标?! 谢谢

更新1

jQuery版本应如下所示:

 jQuery.ajax({ url:"/Home/InsertModel", data:"some post data", type:"POST", success:function(data){ doWork(this,data); // so i really do not care about data! I just need jQuery(this) } }) 

如果要访问表单元素,则有很多选项,如果页面上只有一个表单,则可以执行$("form") ,jquery将为您提供表单元素。

另一个选择是更改Ajax.BeginForm构造函数,它将表单id作为参数,如下所示:

 @using (Ajax.BeginForm("InsertModel", "Home",null, new AjaxOptions { HttpMethod = "POST", OnSuccess = "doWork('SomeCustomText')" }, new {id = "myFormId"})) { 
<--Some HTML--!>
}

并在JavaScript中

  

在简单的JQuery中:

 $.ajax({ url:"/Home/InsertModel", data:"some post data", type:"POST", success:function(data){ // find the form by id $("#myForm1"); // find forms in the page $("form") ... } });