asp.net Core 1 RenderPartial ViewDataDictionary

时间:2017-03-20 15:43:53

标签: asp.net-core-1.0 renderpartial

我正在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。我花了很多时间在这个论坛和其他网站上查看类似的问题,但一直无法找到答案。非常感谢您给予我的任何帮助。

2 个答案:

答案 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" }}