2010-07-13 69 views
5

來自HTML,XML和PHP的世界,當使用ASP.NET製作Web應用程序時,它提供了一種新的思維方式。我想用下面的代碼在我的母版:ASP.NET中的ID命名約定?

<div id="leftnav"> 
    <asp:ContentPlaceHolder ID="leftnav" runat="server"> 
    </asp:ContentPlaceHolder> 
</div> 

但由於leftnav在這個例子中使用了兩次,Visual Studio中做到小而精noticable抗議。我應該如何看待這種情況,以及哪種方式是ASP.NET中命名標識的最合適的使用方法。

我不喜歡默認命名,因爲id="ContentPlaceHolder1"沒有說內容。

謝謝傾聽!

+0

你真的需要給DIV一個ID? 順便說一句,我更喜歡給控件一個ID,它給出了它的類型f.e的結論。 DivLeftNav,CphLeftNav或TxtLeftNav。 – 2010-07-13 08:15:58

+4

@Tim Schmelter:給出這個問題,難道我們不能假設OP爲什麼需要它嗎?畢竟,需要身份證的情況並不罕見。 – 2010-07-13 08:17:47

+0

一般的想法是做一個簡單的風格的頁面,因此使用leftnav作爲我的樣式表的參考,其中#leftnav {float:left;寬度:190px; }和#content {margin-left:200px; }。 這可能是因爲我是ASP新手,所以我在這裏想錯了所有的問題:) – 2010-07-13 08:24:56

回答

8

我會調用div「nav」和佔位符「navPlaceholder」。這是因爲「左」這個詞意味着的位置,應該由你的css來處理,而不是你的html。如果設計師決定他們想把導航放在正確的位置怎麼辦?你可以在你的CSS中做到這一點,但你最終會遇到一些令人困惑的事情,比如div #lefnav { float:right; }一個簡單的例子,我知道但是要記住。

+1

一個明智的方法。 +1分隔我們的關注 – 2010-07-13 08:24:57

+0

Thanx丹尼爾。我已將名稱更改爲globalNav,localNav和supplementNav以更好地描述其內容,而不是樣式或位置。真誠的, – 2010-07-14 06:17:53

3

「leftNavPlaceHolder」怎麼樣?

正如一起與你的命名約定:)

1

我建議你保持一致,不要給id來div的,除非你真的需要,因爲它會影響性能。

+0

11個額外的字符被髮送到客戶端?請注意,DIV不是'runat =「server」'。 OP是在談論一個* small but noticable抗議*在設計師 - 不是一個編譯錯誤=) – 2010-07-13 08:20:18

+0

我正在談論整個HTML控件ID不是爲單個ID – 2010-07-13 09:25:57

+0

我認爲如果你有很多頁面上的HTML,你un​​nessceraly ID,它會對性能產生影響,儘管它很小。 – 2010-07-13 09:26:52

1

主觀。這類問題的明顯答案是:選擇你喜歡的東西;將其標準化,並始終遵循它。

就個人而言,我的名字用以下方式我的東西:

<asp:Literal runat="server" ID="ltlDescriptionOfContent" /> 

<asp:PlaceHolder runat="server" ID="plhSendMessage"> 
</asp:PlaceHolder> 

對於包含的,是的,有關發送消息的信息的區域。但你不必這樣做。做你想做的。只要保持一致。理想情況下,傳達一些關於內部信息的信息。

+0

這是一種很好的思維方式,就像普通的C#命名約定一樣。我只是認爲每個人都使用一種簡單的命名約定。感謝您的答案。 – 2010-07-13 08:32:30

+0

這也是非常明智的建議。 – 2010-07-13 08:34:13

2

不,默認ID很糟糕。我無法想象它們的用意,因爲Visual Studio不夠聰明,無法提供更好的建議,而且他們也不會提出半智能的建議,因爲它們不想嘗試脫落作爲他們不是的東西。合理=)

所以使總是習慣更改默認的ID。你改變他們的方式完全取決於你; 「leftNavContent」?當談到身份證時,幾乎所有被大會所覆蓋的東西都是大寫字母。

真的從純粹的HTML變化的唯一的事情是,你不能使用像服務器控件的「左導航」,即包含連字符的ID。

+0

+1爲「習慣於改變默認ID」他們沒有意義,使任何客戶端腳本難以理解。 – 2010-07-13 08:36:06

1

我用ux加上所有ASP.Net控件的前綴來表示用戶控件。

然後你就可以連接你的String emailAddress = "[email protected]";uxEmailAddress.Text = emailAddress