繁体   English   中英

如何获得out ViewData参数?

[英]How can I have an out ViewData Parameter?

我有一些重复的ViewData数据,需要在多个controllers它们。 我想为此创建一个实用函数。 我试图有一个out参数,并使用控制器的ViewData调用该函数。

有人可以指导正确的语法和方法吗?

public static void GetSheetsEssentialViewData(out ViewDataDictionary ViewData)
{
    ViewData["111"] = Utility.111();
    ViewData["22"] = Utility.22();
    ViewData["33"] = Utility.33();
    .....
}

您收到错误消息是因为在使用前必须在方法中初始化out参数-最初未分配该参数。 但是,我认为您根本不希望它成为out参数。

您可以只从控制器传递现有引用,而根本不使用out参数:

// In UtilityClass
public static void GetSheetsEssentialViewData(ViewDataDictionary viewData)

然后在控制器方法中:

UtilityClass.GetSheetsEssentialViewData(ViewData);

或者,您可以考虑使其成为扩展方法:

public static void PopulateSheetsData(this ViewDataDictionary viewData)

然后,您可以在控制器中使用以下命令进行调用:

ViewData.PopulateSheetsData();

IMO,这很容易阅读。

(要了解有关refout参数的更多信息,您可能需要阅读我有关C#参数传递的文章 。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM