小编Zac*_*cho的帖子

如何在不使用逻辑的安全性的基础上隐藏Razor视图中的特定元素?

我一直在寻找优雅的解决方案来解决这个不太古老的问题.如何在ASP.Net MVC视图中锁定表单元素,而不是在整个地方添加if ... then逻辑?
理想情况下,来自OnAuthorization或OnResultExecultion的BaseController将检查呈现表单元素并根据角色和范围隐藏/不呈现它们.
我考虑的另一种方法是编写某种自定义属性,以便与我们如何使用[Authorize]锁定ActionResults的方式保持一致.如果没有将隐藏对象列表传递给视图并将if全部放在一边,这是否可行?

其他背景信息:我们将有一个数据库,它将告诉我们在执行时(基于用户角色/范围)将隐藏哪些元素.我们正在使用MVC3和Razor Viewengine.我们正在使用BaseController,其中可以覆盖任何Controller方法.

任何有关这方面的帮助将深表感谢!

asp.net-mvc asp.net-mvc-3

7
推荐指数
1
解决办法
3640
查看次数

如何使用App Config中初始化的Angular Translate测试控制器?

我有一个使用Angular Translate的应用程序(https://github.com/PascalPrecht/angular-translate).翻译通过浏览器在应用程序中运行良好,但当我尝试测试任何控制器时,我得到错误:意外请求:GET locale/locale-en.json.我如何对我的控制器进行单元测试,因为translate在启动时会对语言文件进行GET请求?

我正在使用与Karma的yeoman角度发生器.


App.js:

angular.module('myApp', ['ngCookies', 'ui.bootstrap', 'pascalprecht.translate'])
  .config(function ($routeProvider, $locationProvider, $translateProvider) {

    $routeProvider
      .when('/', {
        templateUrl: 'views/main.html',
        controller: 'MainCtrl'
      })
      .otherwise({
        redirectTo: '/'
      });

      $translateProvider.useStaticFilesLoader({
        prefix: 'locale/locale-',
        suffix: '.json'
      });
      $translateProvider.uses('en');
      $translateProvider.useLocalStorage();
  });
Run Code Online (Sandbox Code Playgroud)

控制器测试:

describe('Controller: DocumentationCtrl', function () {

  // load the controller's module
  beforeEach(module('myApp'));

  var DocumentationCtrl,
    scope,
    $httpBackend;

  // Initialize the controller and a mock scope
  beforeEach(inject(function ($controller, $rootScope, $injector) {
    $httpBackend = $injector.get('$httpBackend');
    scope = $rootScope.$new();
    DocumentationCtrl = $controller('DocumentationCtrl', {
      $scope: scope …
Run Code Online (Sandbox Code Playgroud)

jasmine angularjs gruntjs yeoman karma-runner

6
推荐指数
1
解决办法
7153
查看次数

你能用Javascript来检测服务器端创建的文件下载窗口吗?

我有一个jQuery插件,用于在default.aspx asp.net页面上动态创建和呈现表单,然后提交它.它提交的页面是pdf.aspx页面.页面构建PDF然后使用Response.Write将文件(application/pdf)写入浏览器.我也使用相同的方法将XLSX文件呈现给浏览器.它的效果非常好,但是我需要一个回调或一些事件来告诉按钮什么时候停止旋转.这可以防止用户连续单击Excel或PDF按钮.当没有使用javascript创建文件对话框窗口时,是否有人知道检测文件对话框窗口的方法?我也对服务器端的其他回调方法持开放态度.

javascript asp.net jquery javascript-events

4
推荐指数
1
解决办法
4557
查看次数