奥莉莉亚服务器端视图(ASP.NET MVC)

3
我是一个有用的助手,可以为您翻译文本。
我是一名Aurelia的新手。我已经成功地在ASP.NET MVC应用程序中启动了Aurelia,现在我想使用ASP.NET MVC动作获取Aurelia元素视图。我看到一些示例使用useView、getViewStrategy或ViewLocator,但即使这些示例提到了ASP.NET MVC或Razor,它们似乎都使用静态HTML。
我的发现: useView
@useView('/Issue/EditIssueHtml') 
export class EditIssue {

很明显,useView仅支持静态HTML:Unhandled rejection Error: Load timeout for modules: template-registry-entry!/Issue/EditIssueHtml,text!/Issue/EditIssueHtml

getViewStrategy

export class EditIssue {
    getViewStrategy() {
        return '/Issue/EditIssueHtml';
    }
}

该方法仅适用于应用程序根目录(从未对元素调用)。然而,将其与应用程序根目录和ASP.NET MVC操作一起使用会引发与使用useView相同的错误,这表明仅支持静态HTML。 ViewLocator
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文档中的内容http://aurelia.io/hub.html#/doc/article/aurelia/framework/latest/app-configuration-and-startup/9创建了一个基于工作的解决方案,但是文档没有提到任何关于服务器端视图的内容。
我错过了什么还是Aurelia不支持服务器端视图?

1
我的结论是Aurelia不支持服务器端渲染。我在GitHub上偶然发现了aurelia/skeleton-server-render项目(https://github.com/aurelia/skeleton-server-render/issues/1),创建这个项目的原因一定是因为它不可能实现。然而,令人遗憾的是,该项目似乎已经停止维护了。 - halvorsen
1个回答

1

根据我的Aurelia专业经验,我不建议在MVC和Razor中使用它。

我已经尝试了将近一年,但是在Visual Studio中无法解决npm问题。

我的建议是避免在服务器端使用Aurelia渲染。否则你会每晚被它困扰。

在我长期的Aurelia职业生涯中,我花了将近两天时间制作SPA,效果非常好。

如果我是你,我会选择SPA路线。

回答你的问题,使用Aurelia不可能实现服务器端渲染。

祝你好运。


1
我认为Aurelia最适合单页应用程序,而且我刚刚得出结论,Aurelia不支持服务器端渲染。 - halvorsen
1
对于任何来到这里的人:我采用了略微不同的方法,它涉及正常的mvc razor视图开发,然后使用Aurelia增强服务器端标记。在今年开发的asp.net core(需要TagHelpers)应用程序中使用它效果很好。我在我的博客http://blog.deap.nu上介绍了这个设置。 - Dan Pettersson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接