部分视图对话框事件在Chrome中不起作用

时间:2015-07-22 15:34:38

标签: asp.net-mvc angularjs

部分视图页面(cshtml)由angularjs通过父视图页面(cshtml)中的窗口单击打开为对话框,但对话框中的嵌入式组件不响应鼠标输入 - 例如它不响应点击铬虽然在ie11中点击。

具体来说,我在部分视图页面中打开了一个FileUltimate文件浏览器控件作为对话框打开。 cshtml是:

@using GleamTech.FileUltimate
@model FileManager

@using MyCompany.OWL.Website.Helpers
@{
    Layout = null;
}

<head>
    <title>File Browser</title>
    @Html.RenderCss(Model)
    @Html.RenderJs(Model)
</head>


<div class="overlay" id="fileBrowser">
    <h1>File Manager<a href data-icon="&#x00d7;" data-ng-click="close()"></a></h1>
    <div>
        <div style="width:800px">
            @Html.RenderControl(Model)
        </div>
    </div>
</div>

由父页面的angularjs控制器打开

$scope.openFileManager = function () {
    var modalItem = { project: $scope.item };
    fileManager.openFileManager(modalItem);
};

反过来调用

fileManagerFactory.factory('FileManager', ['$modal', function ($modal) {

    return {
        openFileManager: function (data) {

            var modalInstance = $modal.open({
                templateUrl: '/filemanager/filemanager?projectid=' + data.project.projectId,
                controller: 'FileManagerController',
                resolve: {
                    projectData: function () {
                        return data;
                    }
                }
            });
        }
    };

}]);

部分视图的关联mvc控制器是

[AccessAuthorize(Roles = "ProjectManagers")]
public ActionResult FileManager(int ProjectID)
{
    FileManagerApiController api = new FileManagerApiController();

    //return View(new[] { fileManager }); 

    return PartialView("_FileManager",api.Get(ProjectID));
}

我因为ie11对话框可行的原因而难倒,但chrome和firefox不会。某些键盘输入由chrome处理,但没有鼠标。失败只发生在最后的控件上。有谁知道为什么控件没有响应chrome?是angularjs吗?

由于供应商不相信他的控件有问题,我正在探索其他方式打开它而不将其嵌入到对话框cshtml中,但我最大的问题是将数据从父视图传递到文件的mvc控制器浏览器。数据保存在父页面和$ scope变量的html控件中,这似乎阻止在@ Html.BeginForm中调用控件。文件浏览器只能在父窗口中配置了记录特定数据后才能打开,我无法离开父页面。文件浏览器有自己的独立ui。

ps - 另一个奇怪的观察是ie11,chrome44和firefox33以不同的方式呈现对话框 - 同一个cshtml的3个不同的再现。

0 个答案:

没有答案