我正在使用Backbone.js和jQuery-mobile.jQuery-mobile routing被禁用,我只使用lib进行UI.除了选择页面转换外,我完成了所有工作.我需要将页面转换('slice-up','fade','slide-down')传递给Backbone路由器,因为转换是根据用户来自何处而变化的.
我已经想出了一个非常难看的方法,通过url传递它们:
class App.Routers.Foods extends Backbone.Router
routes:
'': 'index'
':transition': 'index'
'foods/new': 'new'
'foods/new/:transition': 'new'
initialize: ->
@collection = new App.Collections.Foods()
@collection.fetch()
index: (transition)->
view = new App.Views.FoodIndex(collection: @collection)
App.changePage(view, transition)
new: (transition)->
view = new App.Views.FoodNew(collection: @collection)
App.changePage(view, transition)
Run Code Online (Sandbox Code Playgroud)
这是默认转换的html链接:
<a href="#" data-icon="back" class="ui-btn-left">Back</a>
Run Code Online (Sandbox Code Playgroud)
这是淡入淡出过渡的html链接:
<a href="#fade" data-icon="back" class="ui-btn-left">Back</a>
Run Code Online (Sandbox Code Playgroud)
使用查询字符串,即/ food/new?transition ='fade'肯定更好,但我不知道如何定义骨干路由以使用查询字符串变量.
我该怎么做?
是否有一种更优雅的方式来处理我的问题,即传递变量而不使用url?
这就是我想要实现的目标,然后汇编我获得的知识,没有解决方案.
在Symfony2项目中,不使用专用包,我希望路径中的第一个目录定义语言环境.它必须是可选的:
由于我将在项目结束时拥有超过100条路由,并且考虑到可以随时添加区域设置,我需要将所有区域设置路由仅写入一次.
没有机会用一个路由文件实现这一点.SF2.1的一个有趣的解决方案是链式路由文件,由Fabien Potencier自己解释:一个文件将语言环境和链接作前缀到正常路由.我们到了:
第一个文件列出了非语言环境感知的路由以及链接到所有其他正常路由的语言环境感知路由文件.
- routing.yml:
sys_ajax:
resource: "@SystemAjax/InternalAjax/get"
prefix: /sysajax
locale_routing:
resource: base_routing.yml
prefix: /{_locale}
defaults:
_locale: fr
Run Code Online (Sandbox Code Playgroud)
- base_routing.yml:
user:
resource: "@UserBundle/Resources/config/routing.yml"
prefix: /user
Run Code Online (Sandbox Code Playgroud)
@ BTUserBundle/Resources/config/routing.yml是一个普通的捆绑路由文件.
好的,这适用于路径中具有区域设置的URL(示例2和3),但如果我删除了可选的区域设置部分(示例1),则找不到路由.很容易猜到问题来自{_locale}令牌,当URL中没有区域设置字符串时,将URL的"用户"部分捕获为区域设置.但是,如果URL的第一部分不是en | fr | it | de,那我该怎么告诉它让URL解开并将它链接到下一个文件?
论坛的解决方案是制作2条路线:
- routing.yml:
sys_ajax:
resource: "@SystemAjax/InternalAjax/get"
prefix: /sysajax
locale_routing:
resource: base_routing.yml
prefix: /{_locale}
requirements:
_locale: fr|en
locale_routing2: …
Run Code Online (Sandbox Code Playgroud) 我正在为我的个人图书馆建立一个测试中心进行各种单元测试,我希望有一个易于访问的测试API路由.所以我的路由配置中有两个条目:默认路由和我的自定义路由...
routes.MapRoute(
name:="Default",
url:="{controller} / {Action} / {id}",
defaults:=New With {.controller = "Home", .action = "Index", .id = UrlParameter.Optional}
)
routes.MapHttpRoute(
name:="UnitTests",
routeTemplate:="test/{category}/{testname}",
defaults:=New With {.controller = "TestApis", .action = "testme",
.category = "TestCategoryOne", .testname = UrlParameter.Optional}
)
Run Code Online (Sandbox Code Playgroud)
我的想法是每当我想调用我的测试API控制器时,我只会在URL前加上"test /",并且知道将它重定向到我的"TestApisController"...但它似乎打破了我的默认路线.
有没有办法可以将所有以"test /"开头的路由映射到特定控制器,同时不会破坏我的默认路由?
所以一段时间后,我意识到这种方法不起作用的原因与路线无关.我在"WebApiConfig"文件中定义了另一个默认的API路由,导致了一些问题.我道歉,我仍在从Webforms过渡到MVC.
vb.net model-view-controller url-routing visual-studio-2013 asp.net-mvc-5.2
我正在尝试将我的MVC应用程序的默认URL设置为我的应用程序区域内的视图.该区域称为" Common ",控制器为" Home ",视图为" Index ".
我已经尝试将web.config的表单部分中的defaultUrl设置为" 〜/ Common/Home/Index "但没有成功.
我也尝试在global.asax中映射一个新路由,因此:
routes.MapRoute(
"Area",
"{area}/{controller}/{action}/{id}",
new { area = "Common", controller = "Home", action = "Index", id = "" }
);
Run Code Online (Sandbox Code Playgroud)
再一次,无济于事.
asp.net asp.net-mvc web-config url-routing asp.net-mvc-routing
我希望能够根据数据库中的信息动态地将URL映射到控制器.
我正在寻找功能相当的东西(假设一个View
模型):
map.route '/:view_name',
:controller => lambda { View.find_by_name(params[:view_name]).controller }
Run Code Online (Sandbox Code Playgroud)
其他人建议动态重建路由,但这对我不起作用,因为可能有数千个视图映射到同一个Controller
在Grails应用程序中使用路径隐藏/ index操作的正确方法是什么?
我希望能够重定向到控制器:"profile",action:"index"但是网址看起来像
http://foobar.com/profile
而不是
http://foobar.com/profile/index
在金字塔结构,功能route_path
和route_url
用于生成从路由结构的网址.所以,如果我有路线:
config.add_route('idea', 'ideas/{idea}')
Run Code Online (Sandbox Code Playgroud)
我可以使用它生成url
request.route_url('idea', idea="great");
Run Code Online (Sandbox Code Playgroud)
但是,有时我可能想添加额外的get参数来生成url,如:
idea/great?sort=asc
Run Code Online (Sandbox Code Playgroud)
这该怎么做?
我试过了
request.route_url('idea', idea='great', sort='asc')
Run Code Online (Sandbox Code Playgroud)
但那没用.
区域文件夹看起来像:
Areas
Admin
Controllers
UserController
BranchController
AdminHomeController
Run Code Online (Sandbox Code Playgroud)
项目目录如下所示:
Controller
UserController
GetAllUsers
Run Code Online (Sandbox Code Playgroud)
区域路线登记
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Admin_default",
"Admin/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional },
new { controller = "Branch|AdminHome|User" }
);
}
Run Code Online (Sandbox Code Playgroud)
项目路线登记
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
namespaces: new string[] { "MyApp.Areas.Admin.Controllers" });
}
Run Code Online (Sandbox Code Playgroud)
当我像这样路由:http://mydomain.com/User/GetAllUsers
我得到资源未找到错误(404).将UserController添加到Area后,我收到此错误.
我该如何解决这个错误?
谢谢...
我正在使用ui-router进行状态管理,但我认为我的.htaccess重写规则有问题.使用/#/ account样式网址时,我的所有州都有效.现在我启用了html5模式,但我的应用程序没有像之前一样呈现.它似乎加载我的index.html和我所有的js和css文件等,但实际上并没有初始化任何状态.
这是我的文件夹结构:
root/
app/
components/
angular/
...
images/
scripts/
controllers/
directives/
...
app.js
styles/
views/
.htaccess
...
Run Code Online (Sandbox Code Playgroud)
我的vhosts DocumentRoot指向我的 app/
这是我的app.js与我的状态:
'use strict';
angular.module('appointeddPortalApp', ['ngResource', 'ui.state', 'ui.compat', 'fundoo.services', 'ui.date', 'ngCookies'])
.config(function ($stateProvider, $routeProvider, $locationProvider, $httpProvider) {
var access = routingConfig.accessLevels;
delete $httpProvider.defaults.headers.common["X-Requested-With"];
$httpProvider.defaults.useXDomain = true;
$locationProvider.html5Mode(true);
$stateProvider
.state('root', {
abstract: true,
url: '',
views: {
'header': {
templateUrl: 'views/partials/header.html'
},
'search': {
templateUrl: 'views/partials/search.html',
controller: 'SearchCtrl'
},
'main': {
templateUrl: 'views/main.html',
controller: 'MainCtrl'
},
'footer': {
templateUrl: …
Run Code Online (Sandbox Code Playgroud) 我正在HapiJS上编写API,并想知道如何获得全局前缀.例如,所有请求都应该:
https://api.mysite.com/v0/...
Run Code Online (Sandbox Code Playgroud)
所以我想配置v0
为全局前缀.文档(这里)似乎没有提到它 - 在HapiJS中有一个很好的方法吗?
url-routing ×10
asp.net-mvc ×2
.htaccess ×1
angularjs ×1
area ×1
asp.net ×1
backbone.js ×1
grails ×1
hapijs ×1
javascript ×1
locale ×1
node.js ×1
pyramid ×1
python ×1
query-string ×1
routes ×1
symfony-2.1 ×1
vb.net ×1
web-config ×1