Настройка Aurelia для использования .cshtml

Я нашел очень полезную статью, показывающую, как использовать Razor partials (cshtml) с aurelia. Однако я не смог заставить работать код и узнал из комментария Робизенберга, что

ConventionalViewStrategy.convertModuleIdToViewUrl 

был объявлен устаревшим Он прокомментировал: «Вы хотите использовать сервис ViewLocator». Я следил за проектом gitHUb и не мог понять, что он имеет прямое отношение к моему использованию с MVC5 и Razor Partials. Так что я в замешательстве.

Это пример файла main.js, который я надеялся откорректировать, чтобы направить Аурелию в 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));
}

Может кто-нибудь сказать мне, как настроить aurelia в проекте MVC5 для использования .cshtml вместо .html шаблонов? Я использую Typescript и VS2015

 Bridget Arrington17 июн. 2016 г., 00:09
blog.nojaf.com/2015/05/06/...  Где я взял код для main.js.gitterforum.com/discussion/aurelia-discuss?page=6884 где я узнал, что код устарел

Ответы на вопрос(1)

Решение Вопроса

Я просто успешно следовал подходу, упомянутому в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());
}
 Volker Rose27 июн. 2016 г., 08:45
@BridgetArrington, ты попробовал?
 Bridget Arrington29 июн. 2016 г., 15:40
Я сделал, и это работает, но он также, кажется, использует перенаправление для плагинов aurelia, которые я пытаюсь использовать также. Я думаю, это другая проблема.

Ваш ответ на вопрос