我有一些重复的ViewData
数据,我在几个controllers
中需要它们。我想为此创建一个实用功能。我尝试使用out
参数并使用控制器ViewData
调用该函数。
有人可以指导正确的语法和方法吗?
public static void GetSheetsEssentialViewData(out ViewDataDictionary ViewData)
{
ViewData["111"] = Utility.111();
ViewData["22"] = Utility.22();
ViewData["33"] = Utility.33();
.....
}
答案 0 :(得分:2)
您收到错误是因为在使用它之前必须在方法中初始化out
参数 - 它最初是未分配的。但是,我认为您根本不希望它成为out
参数。
您可以直接从控制器传递现有引用,而不是使用out
参数:
// In UtilityClass
public static void GetSheetsEssentialViewData(ViewDataDictionary viewData)
然后在控制器方法中:
UtilityClass.GetSheetsEssentialViewData(ViewData);
或者您可以考虑将其作为扩展方法:
public static void PopulateSheetsData(this ViewDataDictionary viewData)
然后你在你的控制器中你可以用:
来调用它ViewData.PopulateSheetsData();
非常易读,IMO。
(要详细了解ref
和out
参数,您可能需要阅读my article about C# parameter passing。)