2014-05-07 73 views
1

我不確定如何正確說出這個問題,但要點是我們已經有一個系統從服務器接收腳本,它提供了一些UI的佈局。我們爲桌面客戶端(WPF)動態呈現此UI。我們希望爲網絡做類似的事情,以便在我們不想安裝胖客戶端的情況下提供一些功能子集。雖然只需創建一個呈現html/aspx字符串的服務器控件,例如相當容易,通過JS/AJAX等生成處理豐富ui體驗的文本......並不是那麼多。如果我們使用Java,Vaadin將是完美的,但Windows Silverlight需要一個插件。所有我在ASP中的信息包括簡單文本寫入響應輸出,但我想...有沒有辦法只使用ASP.Net中的對象來構建一個網頁?

  1. 獲取請求到自定義HTTP模塊。
  2. 查詢適當的腳本並通過C#中的System.Web對象進行呈現。
  3. 將對象或頁面或東西返回給ASP.Net以爲用戶提供服務。
  4. 處理事件併爲用戶提供一般交互性。

是這樣的可能在ASP.Net,我怎麼會突然插入自己入頁面生命週期,使我能回到我的動態創建的頁面實例或獲取到一個正在創建和補充呢?

+0

在的給你不好的建議恐懼,我找了一些這方面的信息自己。我有點決定看看MVC,因爲它允許你有點簡單地連接到數據(或服務),並似乎想爲你做一些工作。 –

+0

您的自定義HttpModule可以將請求路由到動態創建控件的ASPX。你堅持哪部分?你的每一個要點可能都是他們自己的問題。 – David

+0

Silverlight如何需要一個插件,但它對於Java來說還好嗎?你如何看待Java這樣做?我的意思是,Silverlight還有很多其他問題,但在這種情況下,它似乎是一種雙重標準。 –

回答

2

我創建了一個小測試頁面。也許這足以讓你走了。各種各樣的地方,你可以用這個,沿自定義控件的行與他們自己的標記和事件處理程序。我希望這有幫助!

Test.aspx的

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Test.aspx.cs" Inherits="DynamicFormTest.Test" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 

    </div> 
    </form> 
</body> 
</html> 

Test.aspx.cs

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

namespace DynamicFormTest 
{ 
    public partial class Test : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 
      Button button1 = new Button(); 
      button1.Text = "Hello World"; 
      button1.Attributes["onclick"] = "alert('Hello!')"; 
      this.form1.Controls.Add(button1); 
     } 
    } 
} 
相關問題