自定义 Aurelia 以使用 .cshtml
Customizing Aurelia to use .cshtml
我找到了一篇非常有用的文章,介绍了如何将 Razor partials (cshtml) 与 aurelia 一起使用。但是,我无法获得 运行 的代码,并从 RobEisenberg 的评论中了解到
ConventionalViewStrategy.convertModuleIdToViewUrl
已弃用。他评论说 "You want to use the ViewLocator service." 我关注了 gitHUb 项目,看不出它与我使用 MVC5 和 Razor Partials 直接相关。所以我很困惑。
这是我希望可以调整的示例 main.js 文件,以便将 aurelia 路由到 Home/Index/Index.cshtml 而不是 index.html
import {LogManager} from "aurelia-framework";
import {ConsoleAppender} from "aurelia-logging-console";
import {ConventionalViewStrategy} from "aurelia-framework";
LogManager.addAppender(new ConsoleAppender());
LogManager.setLevel(LogManager.logLevel.debug);
export function configure(aurelia) {
aurelia.use
.standardConfiguration()
.developmentLogging();
ConventionalViewStrategy.convertModuleIdToViewUrl = function(moduleId){
var moduleName = moduleId.replace("Scripts/", "");
return `./Templates/${moduleName}`;
}
aurelia.start().then(a => a.setRoot("./Scripts/index", document.body));
}
谁能告诉我如何在 MVC5 项目中设置 aurelia 以使用 .cshtml 而不是 .html 模板?我正在使用 Typescript 和 VS2015
我刚刚成功地遵循了 http://ilikekillnerds.com/2016/02/using-views-different-locations-aurelia/:
中提到的方法
import {Aurelia, ViewLocator, Origin, Container} from 'aurelia-framework';
export function configure(aurelia: Aurelia, container: Container) {
aurelia.use
.standardConfiguration()
.developmentLogging();
ViewLocator.prototype.convertOriginToViewUrl = (origin: Origin) => {
var moduleId: string = origin.moduleId;
var moduleName = moduleId.split('/')[moduleId.split('/').length - 1].replace('ViewModel', 'View').replace('.js', '').replace('.ts', '');;
let newViewUrl = `./Templates/${moduleName}`;
console.log(newViewUrl); // e.g. ./Templates/app
return newViewUrl;
}
aurelia.start().then(() => aurelia.setRoot());
}
我找到了一篇非常有用的文章,介绍了如何将 Razor partials (cshtml) 与 aurelia 一起使用。但是,我无法获得 运行 的代码,并从 RobEisenberg 的评论中了解到
ConventionalViewStrategy.convertModuleIdToViewUrl
已弃用。他评论说 "You want to use the ViewLocator service." 我关注了 gitHUb 项目,看不出它与我使用 MVC5 和 Razor Partials 直接相关。所以我很困惑。
这是我希望可以调整的示例 main.js 文件,以便将 aurelia 路由到 Home/Index/Index.cshtml 而不是 index.html
import {LogManager} from "aurelia-framework";
import {ConsoleAppender} from "aurelia-logging-console";
import {ConventionalViewStrategy} from "aurelia-framework";
LogManager.addAppender(new ConsoleAppender());
LogManager.setLevel(LogManager.logLevel.debug);
export function configure(aurelia) {
aurelia.use
.standardConfiguration()
.developmentLogging();
ConventionalViewStrategy.convertModuleIdToViewUrl = function(moduleId){
var moduleName = moduleId.replace("Scripts/", "");
return `./Templates/${moduleName}`;
}
aurelia.start().then(a => a.setRoot("./Scripts/index", document.body));
}
谁能告诉我如何在 MVC5 项目中设置 aurelia 以使用 .cshtml 而不是 .html 模板?我正在使用 Typescript 和 VS2015
我刚刚成功地遵循了 http://ilikekillnerds.com/2016/02/using-views-different-locations-aurelia/:
中提到的方法import {Aurelia, ViewLocator, Origin, Container} from 'aurelia-framework';
export function configure(aurelia: Aurelia, container: Container) {
aurelia.use
.standardConfiguration()
.developmentLogging();
ViewLocator.prototype.convertOriginToViewUrl = (origin: Origin) => {
var moduleId: string = origin.moduleId;
var moduleName = moduleId.split('/')[moduleId.split('/').length - 1].replace('ViewModel', 'View').replace('.js', '').replace('.ts', '');;
let newViewUrl = `./Templates/${moduleName}`;
console.log(newViewUrl); // e.g. ./Templates/app
return newViewUrl;
}
aurelia.start().then(() => aurelia.setRoot());
}