我正在尝试将电子邮件地址作为查询字符串参数传递给Aurelia路线。
网址如下:http://localhost/some/route?email=john@doe.com
但是,似乎网址中的点(句号)会破坏Aurelia路线,从而导致 404 。
如果我删除了点,路线加载就好了。
任何想法导致了什么?我很惊讶我找不到任何关于它的信息,在路线中有一段时间应该相当普遍吗?
谢谢!
编辑:似乎这可能不是Aurelia问题,而是ASP.NET MVC问题:Dots in URL causes 404 with ASP.NET mvc and IIS
答案 0 :(得分:1)
似乎可以正常使用如下的基本设置。我和最新的Aurelia CLI(v0.23)一起制作了这个。在此设置中有三个文件:视图(html),视图模型(ts)和路径(app.ts):
<强>视图/编辑dots.html 强>
<template>
<p>email: ${email}</p>
</template>
<强>视图/编辑dots.ts 强>
export class EditDots {
public email;
activate(params: any) {
console.log('here are *all* your parameters: ', params);
this.email = params.email;
}
}
最后,路线配置(在我的情况下 app.ts ):
import { Router, RouterConfiguration } from 'aurelia-router'
export class App {
router: Router;
configureRouter(config: RouterConfiguration, router: Router) {
config.title = 'Stack';
config.map([
{ route: ['', 'home'], name: 'home', moduleId: './views/home', nav: true, title: 'Home' },
{ route: 'dots/:id', name: 'edit-dots', moduleId: './views/edit-dots', nav: false, title: 'Create a dot' }
]);
this.router = router;
}
}
当我使用此设置导航到http://localhost:9001/#dots/42?email=harry@potter.com时,它会整齐地显示电子邮件地址。当然,我可以删除'42',它仅用于演示目的。
最后请注意,您的示例网址似乎没有使用#-sign。如果这是故意的,您可能想要提供有关配置的更多详细信息。否则,是否有助于添加它?
也许这对你有帮助吗?