2017-01-14 5 views
0

Я использую некоторую стороннюю библиотеку, которая использует синтаксис бритвы для визуализации виджета gui, который используется клиентом. Кажется, что эта библиотека создает некоторые div и javascript, которые затем отправляются клиенту. Однако некоторые проблемы возникают при попытке интегрировать его с Angular. Если я создаю традиционный MVC макет, в котором вызов на контроллер, который затем делает вид, что делает хорошо:MVC Renders шаблон Razor на обычной загрузке страницы, но не тогда, когда Angular ngRoute получает его как templateUrl

~/Views/MyEditor/MyPage.cshtml: (
@model ... 
<div class="col-md-7"> 
    @Html.{3RDPARtY}.Editor() 
    .Render() 
</div> 

Других HTML элементы на этой странице, украшенной нг тегов и предназначенной для использования в качестве шаблона с Angle's 1.x ng-route.

в угловом контроллер маршрутизации ...

$routeProvider.when('/MyEditor' { 
    templateUrl: "~/Views/MyEditor/MyPage.cshtml" 
    controller: "..." 
} 

В этом случае, когда угловые нагрузки маршрутизации до этого маршрута, страница возвращается со всеми угловыми бирками неповрежденными и функции тонких, как угловом применения. Тем не менее, мы обнаружили, что у третьей стороны нет загружен и не отображен html и скрипты, которые он предназначен для генерации.

Если мы переместим файл @ Html.3rdParty.Render() на главный Index.cshtml, то есть тот, который по умолчанию без какой-либо Угловой маршрутизации, затем отображает и выполняет функции. Только когда угловой маршрутизатор делает запрос в этот файл cshtml, он дерьмо. Это где-нибудь, чтобы заставить его правильно обработать бритву, когда маршрутизатор делает вызов файла?

Любая помощь будет высоко оценена. Спасибо.

ответ

0

Если я читаю ваш код выше правильно и понял ваш вопрос:

  • вы используете тильды ~ на вашем пути в клиента сценария - тильда ~ только для razor (со стороны сервера рендеринг)

  • Кроме того, должен вызвать controller для зрения и неcshtml файл напрямую.

Если вы не гадость с web.config настройками в вашем MVC приложения вы не можете вызвать (cs/vb) html файлы непосредственно (ограниченные по умолчанию).

  • установка <add key="webpages:Enabled" value="false"/>
  • В Asp.Net WebPages ограничение по умолчанию (легкий сайт Asp.Net, который использует вид на Razor), он является включен (true), и вы можете называть их непосредственно

Hth.