我已经为HtmlHelper编写了扩展方法,该方法是从需要访问ViewBag以获取页面信息的母版页面调用的。
这是方法签名:
public static string BuildFavoritesTitle(this HtmlHelper htmlHelper) { }
如果我访问
,我会注意到方法内部htmlHelper.ViewContext.ViewBag
我得到空的ViewBag,但是如果访问
htmlHelper.ViewBag
我得到了“正确的”ViewBag。通过正确我的意思是ViewBag与内部页面中添加的项目。
我想知道有什么区别,为什么有多个ViewBag?
答案 0 :(得分:1)
您在视图数据字典中设置值的目的是什么?是否有某种属性来确定如何呈现控件?
考虑向BuildFavoritesTitle
添加其他参数public static string BuildFavoritesTitle(this HtmlHelper htmlHelper, string parameter) { }
然后从您的视图中调用帮助方法(我不确定这是否是您的目标?):
@Html.BuildFavoritesTitle("myParameter")
此外,如果它是一个控件,或者你试图在你的html帮助器中构建某种标记,请考虑使用MvcHtmlString作为返回类型。