2009-12-11 32 views
1

我最近開始在ASP.NET中開發,並且來自PHP背景,我使用<%>將代碼灑到aspx頁面來控制邏輯。ASP.NET在Visual Studio 2008代碼重新安排

我不是在討論只使用代碼背後的最佳實踐,但是在這方面的一個優點是我遇到的問題。

每當我進入aspx文件中的代碼的設計視圖,就像我提到的,並進行修改,隨機所有的<%>阻止 - 移動 - 在我的aspx到什麼似乎隨機斑點。

這顯然是皇家混亂了我的控制邏輯,重做所有的內部代碼10+次後(是的,我懶得咬牙,把它移到代碼後面),我真的很好奇Visual Studio如何做出這樣的錯誤?

它甚至去完全刪除一些<%%>塊(導致我的代碼中丟失的大括號)。

如果有人可以幫助我解決這個問題,或者知道它不能解決,我將不勝感激知道。

+0

我不確定如何在VS中解決它,但是當我不得不在上一份作業中使用內嵌塊進行編碼時,我們使用文本編輯器而不是VS.但它絕對不是理想的。 – 2009-12-11 22:59:59

回答

1

我相信我發現了這些問題。

它看起來無效的HTML(未封閉的標籤,或額外的關閉標籤)導致的問題。

佈局設計師沒有語法檢查器手動。

+0

雖然你接受了自己的答案,但我會聽取桑尼博士的建議。在我看來,絕對不會有任何問題,你會早點回來決定像ASP.NET一樣對待ASP.NET。沒有理由在ASPX頁面上放置邏輯 - 這是不好的設計,也沒有注意到那些在你之前走過的人所獲得的教訓。 – 2009-12-16 02:19:00

+0

是的,我完全同意。從這個項目中學到了一課! – 2009-12-16 04:24:44

5

ASP.NET的最佳做法是儘可能避免<%%>塊。它們來自傳統的ASP。

如果您需要將值放入頁面上的內容創建控件(例如<asp:TextBox>),然後在代碼隱藏中相應地設置值。

設計/源視圖應該只用於標記而不是邏輯(如果可以的話)。

+0

+1不錯的答案。 :) – Saar 2009-12-11 22:54:16

+0

我會編輯這個說,當使用ASP.NET WebForms時要避免使用這些塊。 ASP.NET MVC使它們得到了廣泛的使用,並且對IMO有很大的影響。 – 2009-12-16 02:16:14

+1

+1但有一個警告。您不要通過使用而是通過使用標籤控件來向頁面添加內容。簡單的<%#VarName%>元素也很好,但文本框應該只用於用戶輸入 - 不輸出。 – 2009-12-16 02:20:23

0

您是否試圖強制代碼進入Visual Studio想要解決的安排?因爲如果VS遇到這些問題,最好的辦法就是讓VS按照自己想要的方式重新排列代碼,並修復發生的錯誤。直到代碼穩定爲止,VS不再想要重新排列它。

也就是說,VS不應該以改變邏輯的方式來重構代碼。

+0

我剛決定停止在項目中使用Designer來完全避免此問題。項目建好,網站顯示正常,唯一的問題是代碼重新排列時,我在設計視圖中修改了一些東西。 它完全把我扔掉,我完全喪失了它是如何發生的。 – 2009-12-11 23:02:32

0

我可以給你的最好的答案就是不要使用設計視圖。如果需要,您可以將控件從工具箱中直接拖放到標記中,而且我更願意查看實際瀏覽器如何呈現頁面。