0

角ルート:

angular.module('AMS', []).
  config(['$routeProvider', function ($routeProvider) {
      $routeProvider.
          when('/dashboard', { templateUrl: '/Dashboard', controller: dashboardController }).
          when('/settings', { templateUrl: '/Settings', controller: settingsController }).
          otherwise({ redirectTo: '/dashboard' });
  }]);

サンプル:

/* client side route */
http://localhost:4117/#/dashboard

に指差す

/* controller that returns the partial */
http://localhost:4117/Dashboard

すべてが期待どおりに機能しますが、同じ URL をブラウザーに (先頭の なしで/#/) 配置すると、パーシャルが返されます。

それを防ぐにはどうすればよいですか?

4

1 に答える 1

0

サーバー側メソッドのカスタム ActionMethodSelectorAttribute として使用できます。例えば:

public class AjaxRequestAttribute : ActionMethodSelectorAttribute
{
    public override bool IsValidForRequest(ControllerContext controllerContext,
                                           MethodInfo methodInfo)
    {
        return controllerContext.HttpContext.Request.IsAjaxRequest();
    }
}

そして使用:

[AjaxRequest]
public JsonResult GetTemplates()
{
...
}
于 2013-05-26T18:47:45.977 に答える