如何在MVC4中的EditorFor中将模型属性分配给additionalViewData

时间:2014-09-03 01:23:34

标签: asp.net-mvc asp.net-mvc-4 razor razor-2

我的工作目标是在符合条件1的情况下禁用网页上的文本框。

所以我创建了一个名为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})

第二个m下的错误说:

  

当前上下文中不存在名称“m”

所以我的问题是如何将我的模型属性分配给EditorFor中的additionalViewData

顺便说一下,这是MSDN上EnditorFor的语法

public static MvcHtmlString EditorFor<TModel, TValue>(
    this HtmlHelper<TModel> html,
    Expression<Func<TModel, TValue>> expression,
    string templateName,
    Object additionalViewData
)

1 个答案:

答案 0 :(得分:1)

假设CurrentProgramYear是您模型中的属性,请更改

.... new {Switcher = m.CurrentProgramYear ...

.... new {Switcher = Model.CurrentProgramYear ...