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

Asp.net mvc Aurelia服务器端视图(ASP.NET MVC),asp.net-mvc,razor,aurelia,Asp.net Mvc,Razor,Aurelia,我对奥雷莉亚很陌生。我已经设法在ASP.NET MVC应用程序中启动并运行了Aurelia,现在我想使用ASP.NET MVC操作获取Aurelia元素视图。我见过一些使用useView、getViewStrategy或ViewLocator的示例,但即使这些示例提到ASP.NET MVC或Razor,它们似乎都使用静态HTML 我的调查结果: 使用视图 @useView('/Issue/EditIssueHtml') export class EditIssue { 似乎useView只支

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

我的调查结果:

使用视图

@useView('/Issue/EditIssueHtml') 
export class EditIssue {
似乎useView只支持静态HTML:未处理的拒绝错误:模块加载超时:模板注册表项/问题/编辑问题HTML,文本/发布/编辑发布HTML

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文档创建了一个有效的解决方案,但是文档没有提到任何关于服务器端视图的内容


我是否错过了一些东西,或者Aurelia不支持服务器端视图?

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

我已经尝试这样做了将近一年了,但我无法通过VisualStudio中的npm

我的建议是避免使用服务器端渲染的Aurelia。它只会在你每晚睡觉时萦绕在你心头

在我与奥雷利亚的漫长职业生涯中,我花了将近2天的时间做水疗,效果非常好

如果我是你,我会走温泉路

要回答您的问题,甚至不可能使用Aurelia进行服务器端渲染


祝你好运。

我自己的结论是,使用Aurelia无法进行服务器端渲染。我在GitHub()上偶然发现了aurelia/skeleton服务器渲染项目,创建此项目的原因一定是因为不可能。然而,令人遗憾的是,该项目似乎已经过时。我同意Aurelia最适合SPA,几分钟前我得出结论,Aurelia不可能进行服务器端渲染。对于来到这里的任何人来说:我采取了一种稍微不同的方法,这涉及到普通的mvc razor视图开发,然后使用Aurelia增强服务器端标记。在今年开发的asp.net核心(需要TagHelpers)应用程序中使用它,效果非常好。我在我的博客上介绍了这个设置。