在我看来,我有一个名为testalert
的函数,在我的控制器中我有一个名为Index
的动作,我使用javascriptmodel可以解决我的问题,但我发现如果我的action不返回一个view(),例如:只返回Json(模型),javascriptmodel将无法正常工作。当我返回json时如何调用js函数?为什么javascriptmodel只能被设计为运行良好
在回报中?
function testalert(para) {
alert(para);
}
public ActionResult Index()
{
//work well and alert "abc"
this.AddJavaScriptFunction("testalert", PageLoadEvent.Ready, null, "abc");
return View();
}
public ActionResult GetData()
{
var restult="data";
// not work
this.AddJavaScriptFunction("testalert", PageLoadEvent.Ready, null, "abc");
return Json(restult);
}
答案 0 :(得分:1)
我已经完成了作为结果承诺返回的AsyncHelper.Call(url,params),并在客户端等待promise.done和我的东西。
更短的版本:
var AsyncAction = (function () {
return {
//options: passed to $.ajax
Call: function (options, helperOptions) {
return $.ajax(options)
.done(function (result) {
helperOptions.onSucceed(result.model);
});
}
};
})();