2013-11-25 21 views
0

作爲MVC和Razor的新手我想知道與使用Razor synetx相比,使用標準HTML標記生成html控件有什麼不同。由@(Html。)生成的HTML控件和控件的區別?

HTML標記

舉例:

<input type="hidden" id="hidden1"/> 
<input id="txtSearch" type="text" class="content-box span3" name="Keywords" placeholder="Keywords"> 

舉例剃刀標籤:

@(Html.Hidden("hfType")) 
<input type="text" id="txt" class="txt1"/> 

是否有差異或這些都是在做同樣的事情,只是2種方式。在哪種情況下,我應該更喜歡哪種方式。我非常感謝你的指導。

回答

1

它們被稱爲HTML助手。他們只是提供便利的方法。它特別有助於命名嵌套屬性。他們還可以提供訪問模型的元數據,例如驗證和標籤。

另一個好處是屬性字符串可以正確轉義。它消除了這種不好的模式。

<a href="@someValue">Test</a> 
+0

剃刀它會是@somevalue – Miller

0

你比剃刀更討論HTML助手。隨着時間的推移HTML助手的讚賞。

手動編寫和重寫HTML是非常耗時的,並且不會遵循DRY principle。最終你會得到非常相似的代碼,如果你需要改變它,那麼它可能會變成一個更大的應用程序的噩夢。

相關:我問Are HTML helpers worth using with complex markup?

我使用HTML傭工比以往現在更加。