你试过使用视图模型而不是ViewData吗?以“For”和“lambda”表达式结尾的强类型助手无法使用弱类型的结构(如ViewData)。
我个人不使用ViewData / ViewBag。我定义视图模型,并将我的控制器操作通过这些视图模型到我的视图。
例如在你的情况下,我将定义一个视图模型:
public class MyViewModel
{
[HiddenInput(DisplayValue = false)]
public string CRN { get; set; }
}
让我的控制器动作填充这个视图模型:
public ActionResult Index()
{
var model = new MyViewModel
{
CRN = "foo bar"
};
return View(model);
}
然后我的强类型视图只是使用一个EditorFor帮助器:
@model MyViewModel
@Html.EditorFor(x => x.CRN)
这将产生我:
在结果HTML中。