我有一个 ASP .NET MVC 应用程序,另外我正在使用 Knockout 2.0.0。我创建了一个局部视图,我想使用敲除渲染到页面。部分需要在 Knockout foreach 语句中呈现。我无法让淘汰赛 HTML 绑定工作,因此我目前正在使用 hack 将 html 放入使用 JQuery 的 div 中。
这个页面有很多html,所以无法贴出所有的源代码,所以我会尝试贴出相关代码:
<div data-bind="foreach:issues">
@* SNIP - A lot of other html here*@
<div id="myPartialDiv" data-bind="html: $parent.getHtml(issueId())">
</div>
</div>
再往下,我的 KO 视图模型上有以下 javascript 函数(我已注释掉我的 hack 并包含返回 HTML 的代码):
var getHtml = function (issueId) {
var baseUrl = '@Url.Action("GetHtmlAction","MyController")';
$.ajax(
{
type: "POST",
url: baseUrl,
data: "&issueId=" + issueId,
success: function (data) {
//$('#mypartialDiv').html(data);
return data;
},
error: function (req, status, error) {
//$('#myPartialDiv').html('Something went wrong.');
return 'Something went wrong.'
},
dataType: "text"
});
}
上面的代码导致没有数据呈现到页面。使用 Chrome 调试工具,我看到没有发生 javascript 错误,并且敲除根本没有将 div 的 html 绑定到 getHtml 函数返回的结果。
我究竟做错了什么?
谢谢