我正在VS 2017中重新编写一个最初用VS 2010编写的网站。我最初使用的命令在页脚中显示我的访客数量是: -
@Html.RenderPartial( "/Counter/Counter.ascx", new ViewDataDictionary {{ "digits", 6 }, { "id", "Count" }})
。这使用digits.gif作为模式将Count.txt中的数字显示为6位数。当我尝试在VS 2017中使用相同的代码时,收到以下错误消息:'ViewDataDictionary' does not contain a constructor that takes 0 arguments
。我花了很多时间在这个论坛和其他网站上查看类似的问题,但一直无法找到答案。非常感谢您给予我的任何帮助。
答案 0 :(得分:2)
另一种使用方法是将当前视图的ViewData
传递给构造函数。这样,新的ViewDataDictionary
将使用您使用集合初始化程序放入的项目进行扩展。
@Html.Partial("MyPartial", new ViewDataDictionary(ViewData) { { "digits", 6 } })
答案 1 :(得分:0)
当我去实现ViewDataDictionaryo时:
namespace Microsoft.AspNetCore.Mvc.ViewFeatures
{
public ViewDataDictionary(IModelMetadataProvider metadataProvider,
ModelStateDictionary modelState);
}
可能的解决方案
new ViewDataDictionary(
new Microsoft.AspNetCore.Mvc.ModelBinding.EmptyModelMetadataProvider(),
new Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary())
{{ "digits", 6 }, { "id", "Count" }}