2011-01-12 29 views
1

這可能聽起來很愚蠢,但我需要從我的html文件中執行C#代碼。例如我只想執行此操作如何在html文件中執行C#.net代碼?

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

沒有任何服務器端代碼。

我無法創建aspx頁面,因爲它需要在IIS中託管瀏覽器中打開一個aspx頁面。

+0

我認爲你的問題是真的,「我如何創建一個網頁,讓觀衆觀看視頻?」 – 2011-01-12 11:56:51

+0

@David它只是一個例子,你可以告訴我只是想在我的html文件上使用.net庫。 – BreakHead 2011-01-12 12:00:31

+0

如果可能的話,是什麼阻止某人嘗試啓動`format.exe`進程? – 2014-04-02 17:58:31

回答

2

你想在哪裏運行c#代碼?

如果你希望它在正被用來渲染HTML然後我會說是基本沒有可能在瀏覽器中運行。有些東西,大概是html頁面中的javascript代碼,將不得不以某種方式實例化.net clr並將c#代碼傳遞給它以執行。 clr確實有一個基於COM的hosting interface,它允許實例化,但即使你可以從javascript調用它,我認爲任何明智的瀏覽器安全設置都會阻止它。

如果你想在C#中的服務器提供的HTML頁面,那麼你應該使用asp.net上運行。

編輯

好吧,你想在瀏覽器中運行它。我不知道在瀏覽器進程中託管一個clr的任何示例,對不起。

您可以創建在使用像var obj=new ActiveXObject("<comclassname>"); JS的ActiveX/COM對象,你可能能夠通過實例對this page列出的COM類(也許CLRRuntimeHost)之一來創建一個CLR的方式。然後你可以將你的C#代碼傳遞給你的clr執行。更多信息herehere。不過,我真的不確定這是否會奏效。我從來沒有使用託管API,我只知道它存在!

好像是一個有趣的項目,如果你很好奇,但是在真實環境中部署它可能會帶來很多問題。祝你好運!

3

您不能從客戶端頁面執行服務器端代碼。如果您的頁面是aspx,則可以使用web服務或單擊javascript中的serverside按鈕。

編輯:如果你要嵌入視頻播放器,請check this link。你不需要服務器端代碼。你將可以用javascript來完成。

0

你可以在你的ASP文件中創建一個代碼塊,但如果這是簡單的HTML文件,這是不可能的。

至少你會有一些應用程序將讀取頁面的內容編譯並執行。

ASP code block

0

正如Pabuc提到HTML在客戶機上,你不能執行服務器端代碼。如果你使用Silverlight,你可以執行代碼客戶端,但是客戶端需要安裝Silverlight,並且它不再是嚴格的HTML。

Silverlight可用於使用C#播放電影客戶端。

0

具有在客戶端C#的唯一方法是如@kenny提到Silverlight應用程序[更新]或任何其他瀏覽器插件。

0

我試圖找到一段時間的軟件。我有需要的軟件,很難用傳統的Web編程來完成。

現在我已經做了簡單的演示,如何使用C#或VB.NET創建HTML5在線應用程序。 它是執行.NET應用程序時將C#翻譯爲Javascript的Scot庫。它還支持在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()");  
    } 
} 

演示非常簡單,但實際上我需要這個庫用於另一個項目。 這將是很高興有任何反饋。