4

我已经为 HtmlHelper 编写了扩展方法,该方法是从需要访问 ViewBag 以获取页面设置的信息的母版页调用的。

这是方法签名:

public static string BuildFavoritesTitle(this HtmlHelper htmlHelper) { }

我注意到如果我访问该方法内部

htmlHelper.ViewContext.ViewBag

我得到空的 ViewBag,但如果访问

htmlHelper.ViewBag

我得到了“正确”的 ViewBag。正确的意思是 ViewBag 与内页中添加的项目。

我只是想知道有什么区别,为什么有多个ViewBag?

4

1 回答 1

1

您在视图数据字典中设置值的目的是什么?确定如何呈现控件是某种属性吗?

考虑向 BuildFavoritesTitle 添加其他参数

public static string BuildFavoritesTitle(this HtmlHelper htmlHelper, string parameter) { }

然后从您的视图中调用辅助方法(我不确定这是否是您的目标?):

@Html.BuildFavoritesTitle("myParameter")

此外,如果它是一个控件,或者您尝试在 html 帮助程序中构建的某种标记,请考虑使用 MvcHtmlString 作为返回类型。

于 2013-10-05T07:49:16.597 回答