0
我的工作目標是在滿足條件1的情況下禁用網頁上的文本框。如何將模型屬性分配給MVC4 EditorFor中的additionalViewData
因此,我創建了一個名爲DoubleTemplate
@model double
@if (ViewData["IsVisible"] != null)
{
var IsVisible = (bool)ViewData["Switcher"];
if (IsVisible)
{
@Html.TextBox(string.Empty,Model)
}
}
而回到我的網頁視圖模板,這裏是我的代碼來調用這個模板
@Html.EditorFor(m => m.Year1Data, "DoubleTemplate", new {Switcher = m.CurrentProgramYear == 1})
錯誤的第2M下稱:
當前上下文中不存在名稱'm'
所以我的問題是如何將我的模型屬性分配給additionalViewData在EditorFor
順便說一句,這裏是EnditorFor在MSDN上
語法public static MvcHtmlString EditorFor<TModel, TValue>(
this HtmlHelper<TModel> html,
Expression<Func<TModel, TValue>> expression,
string templateName,
Object additionalViewData
)
嗨@Stephen,它現在工作:) thx。但是,如果代碼(在網頁上)處於循環中,並且我需要的屬性位於MyViewModel集合中的MyViewModel實例(我們稱之爲MyList),那麼在這種情況下,我不會能夠使用Model,我們如何解決這個問題? – Franva 2014-09-03 01:41:14
我不確定我是否理解 - 您需要發佈更多的視圖,包括循環。但爲什麼你會這樣做,而不是簡單的'@if(Model.CurrentProgramYear == 1){@ Html.TextBoxFor(m => m.Year1Data)}'? – 2014-09-03 01:46:04
您好斯蒂芬,因爲我有超過50個相同的代碼部分在同一頁面上,在不同的條件下顯示/隱藏。所以我選擇使用View Temple。但nvm,我嘗試了我的假設情況,發現它沒有任何意義。所以我們可以忽略這一點。謝謝 :) – Franva 2014-09-03 01:50:44