有没有办法在OnBegin
中为Ajax.BeginForm()
分配多个javascript函数,同时将一些参数(即xhr
和status
)传递给其中一个,例如
@using (@Ajax.BeginForm("Action", "Controller", new AjaxOptions
{
UpdateTargetId = "convertContractorToAnEmployeeFormAjaxContainer",
OnBegin = "(function(xhr, status){ oneFunction(xhr, status); anotherOne();})();"
}))
{
//...
}
当您为OnBegin
提供一个功能名称时,您有三个参数xhr
,status
,error
。我该如何处理内联?
答案 0 :(得分:3)
您可以通过在匿名函数中包装您的调用来完成。
例如:
<强>查看/主页/ Index.cshtml:强>
<div id='ajaxStatus'></div>
@using (@Ajax.BeginForm("Test", "Home", new AjaxOptions
{
OnBegin = "new function(){func1(xhr); func2();}",
UpdateTargetId = "ajaxStatus",
})
)
{
<input type='submit' />
}
@section Scripts{
@Scripts.Render("~/Scripts/jquery.js")
@Scripts.Render("~/Scripts/jquery.unobtrusive-ajax.js")
<script type="text/javascript">
function func1(xhr) {
console.log("xhr: ", xhr);
}
function func2(){
console.log("func2 called");
}
</script>
}
<强> HomeController.cs:强>
public ActionResult Index()
{
return View();
}
public MvcHtmlString Test(object form)
{
return new MvcHtmlString("success");
}
另外,一个小注释:OnBegin
的可用参数为xhr
。
以下是每个AjaxOption事件属性可用的参数列表: