2014-03-13 138 views
-1

我正在使用此代碼,工作正常。HTML助手類

@Html.TextBox("myname", "somevalue", new { @class = "css-class", @onclick = "alert('demo');" id="mynewID"}) 

但對於這另一個重載:

HTMLHelper.Textbox(string name, object value, IDictionary<string,object> htmlattribute) 

我使用像:

@Html.TextBox("myname", "", new Dictionary<string, object> { { "id", "f","class","ds" } }) 

,但得到的編譯錯誤......請幫助

回答

1

錯誤你得到的原因是字典初始值設定項中使用的語法不正確。你可以看到,很容易,如果你將此代碼添加到一個類,並嘗試編譯:

var dict = new Dictionary<string, object> { { "id", "f", "class", "ds" } }; 

你會看到你的錯誤:

No overload for method 'Add' takes 4 arguments

,需要在每個對象傳遞給字典作爲關鍵值對,如在該代碼(注意通過花括號包圍的各鍵 - 值對):

var dict = new Dictionary<string, object> { { "id", "f" }, { "class", "ds" } }; 

所以可以使用的HtmlHelper的那個的過載,如下面的例子:

@Html.TextBox("myname", "", new Dictionary<string, object> { { "id", "f"}, {"class", "ds" } })