2013-03-08 50 views
0

試圖找到這個問題的幫助已經使我到一個全新的:在VB.NET中完全缺乏資源,書籍和樣本MVC 4。我不得不根據經驗學習(以及將你的頭撞在牆上的感覺),或者放棄並轉向C#。MVC 4 VB其他視圖數據

任何公司都不應該出貨產品,如果他們不願意給它與兄弟產品相同的支持。他們應該完全放棄VB的MVC或給我們學習它的方法。

因爲這樣,這是我的問題。此行:

@Html.EditorFor(Function(x) x.UsersData(temp).Roles(Role)) 

是一段很好的代碼。工程奇蹟。但是,我怎樣才能添加一個類,所以我可以改變我的CSS文件的樣式?

嗯,看來這應該做的伎倆:

@Html.EditorFor(Function(x) x.UsersData(temp).Roles(Role), New With {.class = "users-manage-check-box"}) 

但你猜怎麼着,它沒有。永遠。結果是一樣的。

什麼是錯,我該如何解決?並且說實話,我確實想出了一個解決方案。一個讓我感到骯髒。

看看該代碼的輸出,我看到盒類是「複選框」。

所以,我一直在做的是這樣的:

@html.Raw(Html.EditorFor(Function(x) x.UsersData(temp).Roles(Role), New With {.class = "users-manage-textbox"}).ToHtmlString.Replace("check-box", "user-manage-checkbox")) 

這種感覺是錯誤的。大錯特錯。這不僅是一段可悲的代碼,而且還帶來了安全風險,在我的解決方案不在開發階段之前,我必須修復這些風險。

關於爲什麼附加視圖數據不能正常工作的任何線索?我錯了嗎?我問得太多了嗎?

非常感謝!

回答

0

我不認爲EditorFor允許這樣做。所以你需要自己創建一個自定義的編輯器模板。

你可以閱讀更多有關創建自定義模板in this blog post

更新:

看看回答這個問題從http://aspnetwebstack.codeplex.com/

此行爲是由設計。

您呼叫過載接受名爲 additionalViewData(http://msdn.microsoft.com/en-us/library/ff406462)的對象參數。 EditorFor的默認實現將忽略此值。您將 必須編寫自定義編輯器模板才能夠訪問該 信息。

+0

但書籍和樣品都說它應該工作。我可以引用一些書籍,但除非我遇到了錯誤的東西,那就是他們所說的:你通過一個新的{@ class =「class-you-want}來設置html標籤的類別 甚至有@ @ trick在C#中 – RSinohara 2013-03-10 11:30:44

+0

我相信你提供的博客是使用AdditionalData來實現其他功能的,但是如果我沒有完全錯誤,那麼設置標記類肯定是它可以用來做什麼的。 – RSinohara 2013-03-10 11:33:28