【发布时间】:2017-06-27 10:38:47
【问题描述】:
我对 Aurelia 很陌生。我已经设法在 ASP.NET MVC 应用程序中启动并运行 Aurelia,现在我想使用 ASP.NET MVC 操作获取 Aurelia 元素视图。我见过一些使用 useView、getViewStrategy 或 ViewLocator 的示例,但即使这些示例提到 ASP.NET MVC 或 Razor,它们似乎都使用静态 HTML。
我的发现:
使用视图
@useView('/Issue/EditIssueHtml')
export class EditIssue {
显然 useView 仅支持静态 HTML:未处理的拒绝错误:模块加载超时:template-registry-entry!/Issue/EditIssueHtml,text!/Issue/EditIssueHtml
getViewStrategy
export class EditIssue {
getViewStrategy() {
return '/Issue/EditIssueHtml';
}
}
该方法仅适用于应用程序根(从不为元素调用)。但是,将它与应用程序根和 ASP.NET MVC 操作一起使用会引发与使用 useView 时相同的错误,提示仅支持静态 HTML。
视图定位器
ViewLocator.prototype.convertOriginToViewUrl = (origin: Origin) => {
var moduleId: string = origin.moduleId;
var name = moduleId.split('/')[moduleId.split('/').length - 1].replace('ViewModel', 'View').replace('.js', '').replace('.ts', '');
console.log('ViewLocator: ' + name);
if (name !== 'edit-issue') {
return `${name}.html`;
}
return "/Issue/EditIssueHtml";
}
与 useView 相同的错误。
我在Aurelia server side views: Adding auth header to http download request of view/viewmodel 发现了一个问题,提问者声称已根据http://aurelia.io/hub.html#/doc/article/aurelia/framework/latest/app-configuration-and-startup/9 的 Aurelia 文档创建了一个可行的解决方案,但该文档没有提及任何有关服务器端视图的内容。
我是否遗漏了什么或者 Aurelia 不支持服务器端视图?
【问题讨论】:
-
我自己的结论是,使用 Aurelia 无法进行服务器端渲染。我在 GitHub (github.com/aurelia/skeleton-server-render/issues/1) 偶然发现了 aurelia/skeleton-server-render 项目,创建这个项目的原因一定是因为不可能。然而,遗憾的是,这个项目似乎已经死了。
标签: asp.net-mvc razor aurelia