MVC3在ActionLink OnComplete事件上触发多个函数?

时间:2012-02-28 14:32:24

标签: c# javascript .net asp.net-mvc asp.net-mvc-3

如何在MVC3 ActionLink中的OnComplete事件上触发多个函数:

 OnComplete = "function() { one(); two(); }"
这对我不起作用?有什么想法吗?

3 个答案:

答案 0 :(得分:2)

如果您要为ActionLink()点击执行JavaScript,请执行以下操作:

@Html.ActionLink("YourAction", null, new { onclick = "function() { one(); two(); }" })

但是如果你真的想在Action方法完成时执行某些操作,那么你需要编写自己的ActionFilter:

public class ActionExecutionFinal : ActionFilterAttribute
{
    public override void OnResultExecuted(ResultExecutedContext filterContext)
    {
        // do something here
    }
}

你可以将它应用到你的Action方法中:

[ActionExecutionFinal]
public ActionResult YourActionMethod()
{
    return View();
}

答案 1 :(得分:2)

如何将其映射到函数:

...{ OnComplete = "Completed" }...

<script>
  function Completed(){
    one();
    two();
  }
</script>

MVC正在寻找函数的名称,而不是要执行的代码字符串。

答案 2 :(得分:1)

如果你喜欢这个怎么办

查看

OnComplete = "a"

<强>的JavaScript

function a()
{
    b();
    c();
}