Aurelia服务器端视图(ASP.NET MVC)

时间:2017-06-27 10:38:47

标签: asp.net-mvc razor aurelia

我对Aurelia很新。我已经设法在ASP.NET MVC应用程序中启动并运行Aurelia,现在我想使用ASP.NET MVC操作获取Aurelia元素视图。我看过一些使用useView,getViewStrategy或ViewLocator的例子,但即使这些例子提到ASP.NET MVC或Razor,它们似乎都使用静态HTML。

我的发现:

useView

@useView('/Issue/EditIssueHtml') 
export class EditIssue {

Appempntly useView仅支持静态HTML:未处理拒绝错误:模块的加载超时: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 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是否不支持服务器端视图?

1 个答案:

答案 0 :(得分:1)

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

我已经尝试了将近一年的时间,我只是无法通过视觉工作室的npm内容。

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

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

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

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

祝你好运。