2010-04-23 90 views
3

我有一個經典的asp應用程序。我想從該頁面發佈比賽表單到Asp.Net表單。原因是我想在進入數據庫之前使用很多我已經構建到Asp.Net頁面中進行驗證的邏輯,並且我不太瞭解asp。更不用說asp.Net更安全了。從asp發佈到asp.Net

完成此目標的最佳方法是什麼?我的想法如下:

我的ASP頁:

<html> 
    <body> 
    <form action="/Contests/entry.aspx" method="post"> 
     Name: <input type="text" name="fname" size="20" /> 
     Last Name: <input type="text" name="lname" size="20" /> 
     <input type="submit" value="Submit" /> 

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

aspx頁面在一個虛擬目錄中運行,並將處理任何事情發佈到它。

這是可能的,還是aspx防止這種事情?

我(最好)不希望在aspx中創建表單,因爲我的同事想要控制頁面並自己構建html,我不希望不斷地改變它的麻煩。

我需要考慮哪些注意事項?

我會遇到什麼障礙?

如何訪問發佈的表單值?Request.Form?

+0

是否使用asp.net MVC一個選項?這裏也有一個非常類似的問題http://stackoverflow.com/questions/431296/how-can-i-take-more-control-in-asp-net,接受的答案看起來像是在做同樣的事情,重新嘗試去做。 – R0MANARMY 2010-04-23 15:08:14

+0

@ R0MANARMY:其實,是的,這是一個選項。我一定會看看這個解決方案! – Armstrongest 2010-04-23 15:54:23

回答

2

這可以做到,工作正常。您將通過Request.Form訪問已發佈的表單值。

我認爲最大的障礙是您需要以某種方式處理無效數據 - 通常使用webform,.aspx頁面將再次顯示驗證錯誤,但這可能不適合您的情況。可能需要使用查詢字符串參數將它們重定向回.asp頁面,以指示失敗,並且頁面將需要代碼,以允許它使用其先前的值填充表單域並顯示錯誤消息。

+0

是的,我也在想這個。 – Armstrongest 2010-04-23 15:51:18

+0

最後...易於實現客戶端數據驗證(易於在.Net中執行)超過了僅使用後期值所節省的時間。我嘗試了JavaScript查詢錯誤...但決定反對它。實施起來太麻煩了。感謝這篇文章。 – Armstrongest 2010-04-28 00:19:21

2

如何從經典的ASP調用ASP.NET webservice?

http://www.4guysfromrolla.com/webtech/070302-1.shtml

+0

好的建議。這不是一個可取的選擇,因爲我想避免爲這個遺留網站編寫任何asp代碼。 營銷團隊希望在我們等待我們的新asp.net站點啓動時添加比賽,並且我希望讓他們只寫一個基本的html表單並將其發佈給我以處理數據。 – Armstrongest 2010-04-23 15:53:01

5

是的,這是可能的。通常,POST是POST。所以,如果你願意,你可以從PHP頁面發佈到.NET頁面。您可以像現在一樣訪問變量Request.Form。您必須查看ASP Classic頁面以查看帖子項目的名稱,但通常,您可以像訪問.NET頁面一樣訪問它們。

+0

這是很好的知道。出於某種原因,我認爲Asp.Net做了一些安全驗證,以確保發佈的內容說明它是什麼。 – Armstrongest 2010-04-23 15:55:29