2017-03-20 4 views
0

원래 VS 2010에서 작성된 VS 2017 웹 사이트를 다시 작성합니다. 원래 바닥 글에 내 방문자 수를 표시하는 데 사용한 명령은 - @Html.RenderPartial("/Counter/Counter.ascx", new ViewDataDictionary {{ "digits", 6 }, { "id", "Count" }})입니다. count.txt에 digits.gif를 패턴으로 사용하여 6 자리 숫자를 표시했습니다. 시도하고 VS 2017 동일한 코드를 사용할 때 다음 오류 메시지가 나타납니다. 'ViewDataDictionary' does not contain a constructor that takes 0 arguments. 나는이 포럼과 다른 사이트에서 비슷한 질문을 보면서 많은 시간을 보냈으며 답을 찾을 수 없었다. 당신이 저에게 줄 수있는 도움이 가장 감사 할 것입니다. 내가 ViewDataDictionaryo의 구현에 갔다asp.net 코어 1 RenderPartial ViewDataDictionary

답변

0

:

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" }} 
+0

답변 해 주셔서 감사합니다. 첫째, 코드 앞에 <@ Html.RenderPartial ("/Counter/Counter.ascx">)이 필요하다고 가정하고, 그렇지 않으면 두 번째 'new'문 앞에 "Type Expected"오류가 발생합니다. 나는이 문을 사용하여 <@ Html.RenderPartial ("는 wwwroot에/카운터/Counter.ascx"새로운 ViewDataDictionary (새 Microsoft.AspNetCore.Mvc.ModelBinding.EmptyModelMetadataProvider(), 새로운 Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary() > "ModelStateDictionary '에'Add '...에 대한 정의가 포함되어 있지 않다는 오류 메시지가 나타납니다. {{"digits ", 6}, {"id ","Count "}} – xiecs

1

이를 사용하는 또 다른 방법은 생성자에 현재보기의 ViewData을 전달하는 것입니다. 그렇게하면 새 컬렉션 ViewDataDictionary이 컬렉션 초기화 프로그램을 사용하여 넣은 항목으로 확장됩니다.

@Html.Partial("MyPartial", new ViewDataDictionary(ViewData) { { "digits", 6 } })