部分视图页面(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="×" 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个不同的再现。