我试图通过在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
内调用操作方法?
答案 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)方法进行第一次测试。