Как мне объединить Script # и веб-элементы управления? - PullRequest
1 голос
/ 21 января 2011

В настоящее время у меня есть проект веб-приложения в VS2010.Каждый элемент управления (в файлах * .ascx) содержится в отдельной папке вместе с веб-службами, используемыми этим элементом управления (в файлах * .asmx), и объектом javascript, который используется для управления им (в файлах * .js).Таким образом, макет проекта выглядит примерно так:

WebApp/
  WebControl1/
    WebControl1.ascx
      WebControl1.ascx.cs
      WebControl1.ascx.designer.cs
    WebControl1.asmx
      WebControl1.asmx.cs
    WebControl1.js
  WebControl2/
    ...
  Global.asax
  Default.aspx
    Default.aspx.cs
    Default.aspx.designer.cs
  ...

Проект расширяется, и я надеюсь обновить и заменить файлы .js с помощью Script #.Я хотел бы сохранить эту структуру, но, насколько я могу судить, нет никакого способа смешать Script # и обычные файлы C # в одном проекте.

Я посмотрел файл Readme PDF на сайте Script #и скачал пример PhotoDemo, но я не могу найти никаких примеров использования Script # вместе с веб-элементами управления.Я попытался добавить шаблон «Поддержка сценариев» в проект, а затем добавить шаблоны классов и страниц из списка шаблонов Script #, но оба они рассматриваются как обычные файлы исходного кода C #.

Я использовалотражатель для просмотра бинарных файлов mscorlib, System.Web, ScriptSharp.Web, ScriptSharp.VisualStudio, ScriptSharp и Script.Windows, которые установлены Script # и не смогли найти ничего, что могло бы позволить такое поведение.

Кто-нибудь реализовал что-то подобное или есть какие-то подсказки?

Единственный способ, которым мне удалось использовать Script # на данный момент, - это создать отдельный проект Script # и иметь вывод дляфайлы javascript находятся внутри моего веб-приложения.Это работает, но не идеально.

Спасибо за ваше время,
Хью

1 Ответ

0 голосов
/ 26 марта 2011

Я недавно сделал решающий шаг и почти полностью прекратил использование пользовательских веб-элементов управления. Я скомпилировал свой контрольный HTML-код в вывод Script # и вместо обратных передач я делаю вызовы веб-служб с помощью WCF. Я думаю, что вы касаетесь этого, но, на мой взгляд, слишком сложно пытаться синхронизировать дизайн и логику того, что является единым концептуальным блоком, если дизайн и логика находятся в двух отдельных проектах.

Макеты моего проекта теперь выглядят примерно так:

WebApp/
  Pages/
    Home.aspx
    [etc]
  Services/
    MainService.svc

ScriptSharp/
  UI/
    Widget1.html
    Widget1.html.cs
    Widget2.html
    Widget2.html.cs

Я обманываю систему, устанавливая мои файлы ".html" как "Компилировать", превращая их содержимое в константы в выводе Script #. В моих файлах ".html.cs" у меня есть то, что вы ожидаете (обработчики событий для щелчка, изменения и т. Д.), За исключением того, что логика пользовательского интерфейса теперь использует jQuery больше, чем раньше (хорошо).

Если вам интересно, вы можете проверить мой Sharp UI проект, который занимается парсингом html-констант и обработкой каждого html-фрагмента, как если бы он был (на стороне клиента) веб-пользователем управление.

...