1

Я нашел очень полезную статью, в которой показано, как использовать парные части Razor (cshtml) с aurelia. Тем не менее, я не мог получить код для запуска и узнал от RobEisenberg комментарий,Настройка Aurelia для использования .cshtml

ConventionalViewStrategy.convertModuleIdToViewUrl 

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

Это пример main.js файл, который я надеялся, что я мог бы настроить, чтобы маршрут Aurelia в дом/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? Я использую машинопись и VS2015

+0

http://blog.nojaf.com/2015/05/06/using-razor-partials-cshtml- с-aurelia-components/Есть ли у меня код для main.js. http://www.gitterforum.com/discussion/aurelia-discuss?page=6884, где я узнал, что код устарел –

ответ

2

Я только успешно следовал подход, упомянутый в 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()); 
} 
+0

@BridgetArrington, вы его попробовали? –

+0

Я сделал, и он работает, но он также, кажется, использует перенаправление для плагинов aurelia, которые я также пытаюсь использовать. Думаю, это другая проблема. –