c# - 我可以为 ViewBag 提供扩展方法吗?

标签 c# asp.net-mvc razor extension-methods

我可以做 extension methods对于 ViewBag ,或者我应该使用 ViewData相反?

我尝试创建extension methods对于 object因为这是 ViewBag 的类型,但它不起作用。

public static void AddUserData(this object ViewBag)
{

}

有人可以解释一下为什么我们不能为 ViewBag 提供扩展方法吗?

最佳答案

因为 ViewBagdynamic type , extension methods如果不先转换为适当的类型,则不会拾取它们的属性。

我建议您减少使用 ViewBag 以避免到处强制转换。相反,您可以对 View 使用强类型 View 模型。

关于c# - 我可以为 ViewBag 提供扩展方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34330525/

相关文章:

c# - 将 Lambda 选择器作为参数传递

c# - 数组值混淆

c# - VS 中的 MVC Controller 路径 vs 实时生产与 ajax 调用不同

css - 有没有比 @if() 更好的方法在 razor 中动态添加 css

asp.net - 如何从 CSHTML 页面调用 SQL Server 2008 存储过程

c# - 使用私有(private)自动属性而不是编程标准的简单变量

C# 为 Try-Catch 错误分配名称

javascript - 访问 JSON 响应中的字段

javascript - Asp.net MVC,如何避免javascript中参数中的斜杠(/)

javascript - 无法加载图片