C# 带有angularjs处理程序的ASP.NET Ajax.BeginForm

C# 带有angularjs处理程序的ASP.NET Ajax.BeginForm,c#,ajax,asp.net-mvc,angularjs,razor,C#,Ajax,Asp.net Mvc,Angularjs,Razor,我有一个使用Ajax.BeginForm的razor局部视图。问题是,我想通过连接到此视图的angular controller处理ajax响应。虽然我可以使用htmlattributes将自定义属性附加到输入,但除了AjaxOptions之外,我找不到Ajax.BeginForm helper的任何类似特性。但我如何在其中定义角度控制器方法呢 upd:我知道OnSuccess等ajax事件可以通过常规javascript处理,如下所示: <div class="content">

我有一个使用Ajax.BeginForm的razor局部视图。问题是,我想通过连接到此视图的angular controller处理ajax响应。虽然我可以使用htmlattributes将自定义属性附加到输入,但除了AjaxOptions之外,我找不到Ajax.BeginForm helper的任何类似特性。但我如何在其中定义角度控制器方法呢

upd:我知道OnSuccess等ajax事件可以通过常规javascript处理,如下所示:

<div class="content">
        @*@using (Ajax.BeginForm("AccountCheckLogin2", "Login", null, new AjaxOptions { OnFailure = "OnFailure", OnSuccess = "OnSuccess", UpdateTargetId = "result" }, new { @name = "form", role = "form" }))*@
        @using (Ajax.BeginForm("AccountCheckLogin2", "Login", new AjaxOptions { OnSuccess = "OnSuccessLogin", OnBegin = "OnBeginLogin", OnComplete = "OnCompleteLogin", OnFailure = "OnFailureLogin" }))
        {
            //inputs here
        }
           <a class="link" href="/Registration/Registration">Я не зареестрований</a>
        </div>
</div>
<script type="text/javascript">       
    function OnSuccessLogin(response) {
        if (response.ResponseCode == "1") {
            window.location = "/";
        }
        else
        {                
            $("#LoginValidationSummary ul").append("<li>"+response.ResponseMessage+"</li>");
        }
    }
    function OnBeginLogin() {
        $("#loginSubmit").prop("disabled", true);
    }
    function OnCompleteLogin() {
        $("#loginSubmit").prop("disabled", false);
    }
    function OnFailure() {
        alert("Whoops! That didn't go so well did it?");
    }

</script>

@*@使用(Ajax.BeginForm(“AccountCheckLogin2”,“Login”,null,新的AjaxOptions{OnFailure=“OnFailure”,OnSuccess=“OnSuccess”,UpdateTargetId=“result”},新的{@name=“form”,role=“form”}))*@
@使用(Ajax.BeginForm(“AccountCheckLogin2”、“Login”、新的AjaxOptions{OnSuccess=“OnSuccessLogin”、OnBeginLogin=“OnBeginLogin”、OnComplete=“OnCompleteLogin”、OnFailure=“OnFailureLogin”}))
{
//此处输入
}
函数OnSuccessLogin(响应){
如果(response.ResponseCode==“1”){
window.location=“/”;
}
其他的
{                
$(“#LoginValidationSummary ul”).append(“
  • ”+response.ResponseMessage+”
  • ”); } } 函数OnBeginLogin(){ $(“loginSubmit”).prop(“disabled”,true); } 函数OnCompleteLogin(){ $(“#登录提交”).prop(“禁用”,false); } 函数OnFailure(){ 警惕(“哎哟!事情进展得不太顺利,是吗?”); }
    问题是,我可以通过角度的方法来处理这些事件吗?

    试试这个, JS:

    剃刀:
    让我知道它是否有效,谢谢

    你是说使用HtmlatAttributes?如果可以通过HtmlatAttributes实现,那么是的,但是坦率地说,我不知道应该应用什么属性来处理ajax响应。如果您需要,您可以设置用于表单的控制器,或者您可以将其应用于任何html
    ,我已经用代码示例更新了问题,以显示我正在尝试做的事情,您可能不想使用
    Ajax.begin
    了解您想要做什么,而不是以角度的方式做任何事情,并定义控制器并将其附加到表单
    var _myCtrlscope;
    var app = angular.module("myApp", []);
    app.controller("myCtrl", function ($scope) {
    _myCtrlscope = $scope;           
     $scope.foofunction = function (data) {
                // do your stuff with data here.
            }
        });
    
    Ajax.BeginForm("controllerName", "actionName", 
    new AjaxOptions {OnSuccess = "_myCtrlscope.foofunction"}