从ngBlur事件

时间:2018-06-06 09:03:49

标签: c# angularjs asp.net-mvc sitecore

我试图通过在C#中调用控制器的action方法,从State.TransactionProcessingIds.EventInstanceName指令中更新名为nb-blur的模型属性。

以下是我认为:

<md-input-container>
<input name="EventInstanceId" type="text" ng-blur="$http.post('/InternalDonations/Test').success(function (data) { State.TransactionProcessingIds.EventInstanceName = data; });">
</md-input-container>

我有以下控制器和操作方法:

public class InternalDonationsController : Controller
{
    public string Test()
    {
        return "test123";
    }
}

当文本框失去焦点时会触发ngBlur事件,但是当发生这种情况时,我可以看到State.TransactionProcessingIds.EventInstanceName未更新。

我已将调试器附加到SiteCore并在action方法上放置一个断点,并且可以看到它永远不会被调用。

/InternalDonations/Test定义的路由正在运行。

如何在ngBlur内调用操作方法?

1 个答案:

答案 0 :(得分:0)

创建方法&amp;而不是在模板上使用$ http服务。在里面打电话给服务。所以更新模板到

<md-input-container>
    <input name="EventInstanceId" type="text" ng-blur="postTestData()">
</md-input-container>

在控制器中将该方法添加为:

this.postTestData = function() {
    $http.post('/InternalDonations/Test', postData).then(function (data) { 
        State.TransactionProcessingIds.EventInstanceName = data; 
    });
}

确保向控制器注入$ http,并且您的服务也已启动,在Postman或任何其他REST客户端使用POST(或GET)方法进行第一次测试。