gpt4 book ai didi

c# - ValueProvider 不包含 TryGetValue 的定义

转载 作者:太空狗 更新时间:2023-10-29 17:35:21 26 4
gpt4 key购买 nike

在我的应用程序中,我试图将日期和时间与日期时间字段分开,以便我可以在日期上放置一个 jQuery 日期选择器。我找到了 Hanselman's code for splitting the DateTime ,但是我在 bindingContext.ValueProvider.TryGetValue(modelName, out valueResult); 上遇到编译错误。我得到的错误是:

Error 3 'System.Web.Mvc.IValueProvider' does not contain a definition for 'TryGetValue' and no extension method 'TryGetValue' accepting a first argument of type 'System.Web.Mvc.IValueProvider' could be found (are you missing a using directive or an assembly reference?) C:\Documents and Settings\xxx\My Documents\Visual Studio 2008\Projects\MyProject\Project\Helpers\DateAndTimeModelBinder.cs 83 42 Project

我错过了什么?我创建了一个新类,并将他的代码放在我项目的 Helpers 文件夹中。

最佳答案

TryGetValue()不是 System.Web.Mvc.IValueProvider 的成员. 我怀疑他有一个自定义扩展,看起来像这样:

public static bool TryGetValue(this IValueProvider valueProvider, string key, out ValueProviderResult result) {
try {
result = valueProvider.GetValue(key);
return true;
}
catch {
result = null;
return false;
}
}

更新

TryGetValue()不是扩展方法,而是 IDictionary <T,U> 类型的方法. bindingContext.ValueProvider 的类型如@mootinator 所示,自 MVC1 以来已发生变化。您可以忽略对 TryGetValue() 的调用。而是调用 GetValue()并检查结果是否为空。我不确定它是否会抛出异常,因为我还没有测试过它,所以先试试吧。

关于c# - ValueProvider 不包含 TryGetValue 的定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4149805/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com