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