我遇到了以通用方式解决这个问题的问题。
我们有自己的BeginForm和FieldFor,beginForm计算该特定目标网址的PermissionLevel并在ViewData上保存一些信息。然后FieldFor使用该信息在渲染控件上显示各种注释。
现在问题是当使用partial来渲染表单内的字段时。似乎父级的ViewData在部分内部不可用(使用默认的Html.Partial扩展进行渲染),因此注释不会显示。
调试它我发现WebViewPage的ViewData属性是共享的,但Html.ViewData上的那个不是。由于我使用帮助器来渲染字段,我只在HtmlHelper中有viewdata而不是视图的属性。
有什么想法吗?
感谢。
答案 0 :(得分:2)
通常,您只需使用以下
@ViewBag.Property
您没有指定渲染部分的方式,但在某些情况下,如果您用于渲染部分的方法没有携带ViewBag,则可能需要使用以下内容来访问viewbag。
@ViewContext.Controller.ViewBag.Property