【问题标题】:Aurelia server side views (ASP.NET MVC)Aurelia 服务器端视图 (ASP.NET MVC)
【发布时间】: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


【解决方案1】:

从我与 Aurelia 的职业生涯来看,我不建议将它与 MVC 和 Razor 一起使用。

我已经尝试这样做将近一年了,但我无法通过 Visual Studio 中的 npm 内容。

我的建议是避免使用服务器端渲染的 Aurelia。它只会在你每晚的睡眠中困扰你。

在我与 Aurelia 的漫长职业生涯中,我花了将近 2 天时间来制作 SPA,效果很好。

如果我是你,我会走 SPA 之路。

要回答您的问题,甚至无法使用 Aurelia 进行服务器端渲染。

祝你好运。

【讨论】:

  • 我同意 Aurelia 最适合 SPA,并且我在几分钟前得出结论,Aurelia 无法实现服务器端渲染。
  • 对于任何来这里的人:我对此采取了稍微不同的方法,包括正常的 mvc razor 视图开发,然后使用 Aurelia 增强服务器端标记。一直将它用于今年开发的 asp.net 核心(需要 TagHelpers)应用程序,效果很好。我将在我的博客 blog.deap.nu 上介绍此设置。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-01-28
  • 1970-01-01
  • 1970-01-01
  • 2011-08-18
  • 1970-01-01
  • 2014-07-05
  • 1970-01-01
相关资源
最近更新 更多