Как выполнить код C # .net в HTML-файл? - PullRequest
1 голос
/ 12 января 2011

Возможно, это будет звучать глупо, но мне нужно выполнить код C # из моего файла HTML. Например, я просто хочу выполнить это

System.Diagnostics.Process.Start(@"D:\Movies\HurtLocker.avi");

Не какой-либо серверный код.

Я не могу создать страницу aspx, потому что для открытия страницы aspx в браузере ее необходимо разместить в IIS.

Ответы [ 7 ]

3 голосов
/ 12 января 2011

Вы не можете выполнить код на стороне сервера со страницы клиента. Если ваша страница aspx, вы можете воспользоваться веб-сервисом или нажать кнопку на сервере в javascript.

Редактировать: если вы хотите встроить видеоплеер, пожалуйста, проверьте эту ссылку . Вам не нужен серверный код для этого. Вы сможете сделать это с помощью JavaScript.

2 голосов
/ 12 января 2011

Где вы хотите запустить код c #?

Если вы хотите, чтобы он запускался в браузере, который используется для рендеринга html, то я бы сказал, что это в принципе невозможно. Что-то, предположительно код javascript на html-странице, должно каким-то образом создавать экземпляр .net clr и передавать ему код c # для исполнения. У clr есть хост-интерфейс на основе COM , который позволял бы создавать экземпляры, но даже если бы вы могли вызывать это из javascript, я думаю, что любые разумные настройки безопасности браузера предотвратят это.

Если вы хотите, чтобы c # запускался на сервере, предоставляющем html-страницу, вам следует использовать asp.net.

EDIT

Хорошо, вы хотите запустить его в браузере. Извините, я не знаю ни одного примера размещения clr в процессе браузера.

Вы можете создавать объекты activex / com в js, используя что-то вроде var obj=new ActiveXObject("<comclassname>");, и вы можете создать CLR таким образом, создав один из классов COM (возможно, CLRRuntimeHost), перечисленных на этой странице. . Затем вы можете передать свой код C # в свой clr для выполнения. Подробнее здесь и здесь . Я действительно не уверен, что это сработает, хотя. Я никогда не использовал API хостинга, я просто знаю, что он существует!

Похоже, интересный проект, который вы можете попробовать, если вам интересно, но его развертывание в реальной среде, вероятно, создаст много проблем. Удачи!

1 голос
/ 12 января 2011

Не C #, а как насчет динамического языка .NET в браузере с Gestalt? http://gestalt.codeplex.com/

0 голосов
/ 10 апреля 2013

Я пытался найти программное обеспечение для этого некоторое время. У меня есть программное обеспечение, которое имеет потребности, которые трудно сделать с помощью традиционного веб-программирования.

Теперь я сделал простую демонстрацию, как создать онлайн-приложение HTML5 на C # или VB.NET. Это библиотека Scot, которая переводит C # в Javascript вовремя при запуске приложения .NET. Он также поддерживает события в браузерах, которые выполняются в коде c #.

На оригинальный вопрос:

На странице HTML вам нужно будет добавить одну строку после:

<script src="myclass.cs"> </script>`

для подключения .Net класс:

using Scot;
//..
public myclass:Document
{     
    protected override OnConnect()     
    {        
        Elements["mybutton"].OnClick+=new JsInputEventHandler(click); 
        //your initialization        //....     
    }     
    private void click(object sender, JsInputEventArgs e)     
    {        
        Window.Alert("Click()");     
    } 
}

Демонстрации довольно просты, но на самом деле мне нужна была эта библиотека для другого проекта. Было бы неплохо иметь какие-либо отзывы.

0 голосов
/ 12 января 2011

Единственный способ использовать C # на стороне клиента - это приложение Silverlight [update] или любой другой плагин для браузера, как упоминалось @kenny.

0 голосов
/ 12 января 2011

Как упомянул Pabuc, вы не можете выполнять код на стороне сервера на клиентском компьютере в HTML.Если бы вы использовали Silverlight, вы могли бы выполнить код на стороне клиента, но тогда на клиенте должен быть установлен Silverlight, и он больше не является строго HTML.

Silverlight можно использовать для воспроизведения фильмов на стороне клиента с помощью C #.

0 голосов
/ 12 января 2011

Вы можете создать блок кода в вашем ASP-файле, но если это простой HTML-файл, это невозможно.

По крайней мере, у вас будет какое-то приложение, которое прочитает содержимое страницы, скомпилирует его и выполнит.

Блок кода ASP

...