标签: url-routing

如何覆盖路由表中的.svc文件?

我有一个从主网站发回的一些JSON帖子中使用的URL:

HTTP://site/Services/api.svc/UpdateItem

我们正在慢慢更新网站到ASP.Net MVC 2,并且不想破坏系统中的任何当前URL.(JavaScript刷新问题)

我删除了/Services/api.svc并将此API调用的逻辑移动到以下Controller中:

HTTP://网站/ LegacyApi /的updateItem

不幸的是,在添加路由时,我似乎无法覆盖api.svc并继续收到404错误.

路线:

    routes.MapRoute(
        "UpdateItemApi",
        "Services/api.svc/UpdateItem",
        new { controller = "LegacyApi", action = "UpdateItem" }
    );
Run Code Online (Sandbox Code Playgroud)

根据MSDN对这个具体问题,路由应该通过.

非常感谢任何帮助.


更新

标准.aspx页面的路由按预期工作,因此这似乎与.svc文件及其处理方式有关.

c# url-routing asp.net-mvc-2

33
推荐指数
2
解决办法
3406
查看次数

如何从RouteData获取路由名称?

我在Global.asax中定义了几条路线;

当我在页面上时,我需要弄清楚当前路由的路由名称是什么,因为路由名称驱动我的站点菜单.

如何才能做到这一点?

asp.net routing webforms url-routing

33
推荐指数
5
解决办法
3万
查看次数

如何在Angular.js中推迟路由定义?

我已经配置了一些在登录之前可供所有用户使用的基本路由:

App.config(function ($routeProvider) {
    $routeProvider.
        when('/login', { templateUrl: 'views/login.html', controller: PageStartCtrl.Controller }).
        otherwise({ redirectTo: '/login' });
});
Run Code Online (Sandbox Code Playgroud)

所以用户唯一能做的就是登录.用户登录后,我想注册其他路由,如下所示:

$http
  .post('api/Users/Login', {   User: userName, Password: userPassword })
  .success(function (response : any) {
    App.config(function ($routeProvider) {
      $routeProvider
        .when('/dashboard', 
              { templateUrl: 'part/dashboard.html', 
              controller: DashboardCtrl.Controller });
  });
Run Code Online (Sandbox Code Playgroud)

但是,我想我应该只调用一次.config方法,因为$ routeProvider是一个对/ login route一无所知的全新实例.进一步的调试向我展示了在解析视图更改时使用$ resourceProvider的第一个实例.

问:以后如何注册路线?

路由和模板动态添加到$ routeProvider的解决方案可能有效,但是非常难看(涉及全局变量nastyGlobalReferenceToRouteProvider).

configuration dynamic url-routing deferred angularjs

33
推荐指数
2
解决办法
1万
查看次数

Angular2路由器:如何使用自己的路由规则正确加载子模块

这是我的Angular2应用程序结构:

在此输入图像描述

这是我的代码的一部分.以下是moduleAngular2应用程序的主要内容,它导入其路由规则和子模块(EdgeModule)并使用与某些页面相关的一些组件.

app.module.ts

@NgModule({
    declarations: [
        AppComponent,
        PageNotFoundComponent,
        LoginComponent
    ],
    imports: [
        ...
        appRouting,
        EdgeModule
    ],
    providers: [
        appRoutingProviders,
        LoginService
    ],
    bootstrap: [AppComponent]
})

export class AppModule {
}
Run Code Online (Sandbox Code Playgroud)

以下是主模块的路由规则.它有登录页面和页面找不到的路径.

app.routing.ts

const appRoutes: Routes = [
    { path: 'login', component: LoginComponent },
    { path: '**', component: PageNotFoundComponent }
];

export const appRoutingProviders: any[] = [];

export const appRouting = RouterModule.forRoot(appRoutes, { useHash: true });
Run Code Online (Sandbox Code Playgroud)

这是EdgeModule声明它使用的组件并导入自己的路由规则和2个子模块(FirstSectionModuleSecondSectionModule).

edge.module.ts

@NgModule({
    declarations: [
        EdgeComponent, …
Run Code Online (Sandbox Code Playgroud)

url-routing nested-routes angular2-routing angular2-modules angular

33
推荐指数
2
解决办法
4万
查看次数

angularjs路由可以有默认参数值吗?

我可以在AngularJS中设置路由参数的默认值吗?有没有办法拥有/products/123/products/处理相同的路线?

我想重构我现有的代码,看起来像:

myModule.config(['$routeProvider', function($routeProvider) {
    $routeProvider.
     when('/products/', {templateUrl: 'products.html', controller: ProductsCtrl}).            
     when('/products/:productId', {templateUrl: 'products.html', controller: ProductsCtrl})
}]);


function ProductsCtrl($scope, $routeParams) {
    $scope.productId = typeof($routeParams.productId) == "undefined" ? 123 : $routeParams.productId;
}
Run Code Online (Sandbox Code Playgroud)

它有效,但它不是很优雅.有没有更好的办法 ?

javascript model-view-controller url-routing angularjs

32
推荐指数
3
解决办法
3万
查看次数

为什么我需要使用http.StripPrefix来访问我的静态文件?

main.go

package main

import (
    "net/http"
)

func main() {
    http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("static"))))
    http.ListenAndServe(":8080", nil)
}
Run Code Online (Sandbox Code Playgroud)

目录结构:

%GOPATH%/src/project_name/main.go
%GOPATH%/src/project_name/static/..files and folders ..
Run Code Online (Sandbox Code Playgroud)

即使在阅读完文档后,我也无法理解http.StripPrefix这里究竟是做什么的.

1)localhost:8080/static如果删除,为什么我无法访问http.StripPrefix

2)/static如果删除该功能,哪个URL映射到文件夹?

http url-rewriting url-routing go server

32
推荐指数
2
解决办法
1万
查看次数

Flask和React路由

我正在使用React构建Flask应用程序,我最终遇到了路由问题.

后端负责成为API,因此有些路由如下:

@app.route('/api/v1/do-something/', methods=["GET"])
def do_something():
    return something()
Run Code Online (Sandbox Code Playgroud)

以及通往React的主要途径:

@app.route('/')
def index():
    return render_template('index.html')
Run Code Online (Sandbox Code Playgroud)

我在React应用程序中使用react-router,一切正常,反应 - 路由器带我到/something我得到渲染的视图,但是当我刷新页面/something然后Flask应用程序负责这个调用,我得到Not Found错误.

什么是最好的解决方案?我在想重定向这是不是要求所有的呼叫/api/v1/.../它的效果并不理想,因为我将回到我的应用程序,而不是渲染的主页阵营视图.

python url-routing flask reactjs

32
推荐指数
2
解决办法
1万
查看次数

react-router:run不是函数

Egghead教程教导它像这样:

var React = require('react');
var Router = require('react-router');
var routes = require('./config/routes');

Router.run(routes, function(Root){
  React.render(<Root />, document.getElementById('app'));
});
Run Code Online (Sandbox Code Playgroud)

但是我得到了这个错误:

未捕获的TypeError:Router.run不是函数

注意:我已经更新react-router到最新版本.

javascript url-routing flux reactjs react-router

32
推荐指数
1
解决办法
2万
查看次数

用于搜索的ASP.NET MVC自定义路由

这是我的情景.对于该示例,我们可以说我需要根据搜索条件返回汽车列表.我希望有一个View来显示结果,因为输出将是相同的,但我需要几种方法来实现.例如,我可能有一个带有文本框的表单按年搜索.我可能有另一个单独的页面,其中包含所有红色丰田汽车的超链接.如何在同一视图和控制器中处理这些多个方案.我的困境是搜索可能包含几个选项...年份,品牌,模型等,但我不知道在哪里放置它们.

对此最好的方法是什么?我应该在路由中定义参数还是使用查询字符串等?

asp.net-mvc url-routing asp.net-mvc-routing

31
推荐指数
1
解决办法
2万
查看次数

ASP.net MVC支持带有连字符的URL

有一种简单的方法可以让MvcRouteHandler将传入URL的操作和控制器部分中的所有连字符转换为下划线,因为方法或类名称不支持连字符.

这样我就可以支持像sample.com/test-page/edit-details这样的结构映射到Action edit_details和Controller test_pagecontroller,同时继续使用MapRoute方法.

我知道我可以指定一个动作名称属性并支持控制器名称中的连字符,这些连字符可以手动添加路由来实现这一点,但是我正在寻找一种自动化方式,以便在添加新控制器和操作时节省错误.

url asp.net-mvc seo url-routing

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