使用Knockout.js在Modal Popup中打开局部视图

时间:2014-07-23 22:33:05

标签: jquery asp.net-mvc-4 knockout.js

我有部分View AssetList加载了viewmodel usning knockout.js

 <td> 
    <div class="left CursorP ellipsis" style="float: left;" data-bind="text: 
     Name, attr: { 'title': Name },click:$root.eventHandlers.ViewDetail"></div>


</td>
<td data-bind="text: Description"></td>
<td data-bind="text: Source"></td>
<td data-bind="text: CapturedBy"></td>
<td data-bind="text: Status"></td>
<td data-bind="text: LastAccessedBy"></td>

在.JS文件中,我需要在点击名称链接

时打开_AssetDetail部分视图

this.ViewDetail = function(){

       self.SelectedAssetTodelete.removeAll();
        self.SelectedAssetTodelete.push(this);
       window.location =  "#assetId=" + this.Id; --This is opening the Partial view correctly but in the same tab
     };

链接[assetDetailPage]是安全/内容/目录/详细信息?assetId =“+ this.Id

而不是相同的窗口[window.location],我们如何在上面的ViewDetail函数中使用此链接打开模态弹出窗口?

3 个答案:

答案 0 :(得分:0)

您可以使用iframe标记加载外部内容。

<iframe width="300" height="300"
  data-bind="attr: { src: 'Secure/Content/Catalog/Detail?assetId=' + Id }"></iframe>

我不知道您的模型结构,您可能需要将Id替换为Id()$parent.Id()

答案 1 :(得分:0)

你可以使用jquery

这样做
<iframe width="300" height="300" id="model"
    data-bind="
        attr: { src: $root.LoadModel(Id) }
"></iframe>


self.LoadModel = function(id){
    var location = 'Secure/Content/Catalog/Detail?assetId='+id
    $('#model').load(location)
    return location
}

答案 2 :(得分:0)

  • 我想用相同的安全/内容/目录/详细信息打开Popup?在名称链接上的assetId ='+ Id点击Grid;不加载IFrame。