강력한 유형의 부분 뷰에 추가 뷰 데이터 전달
저는 제품 이미지를 촬영하는 강력한 유형의 부분 보기를 가지고 있으며 렌더링 시 포함된 페이지에서 동적으로 생성하는 추가 보기 데이터도 제공하고 싶습니다.RenderPartial 호출을 사용하여 강력하게 입력된 개체와 사용자 정의 ViewData를 부분 보기로 전달하려면 어떻게 해야 합니까?
var index = 0;
foreach (var image in Model.Images.OrderBy(p => p.Order))
{
Html.RenderPartial("ProductImageForm", image); // < Pass 'index' to partial
index++;
}
RenderPartial은 단순히 ViewDataDictionary인 다른 매개 변수를 사용합니다.거의 다 왔어요. 그냥 이렇게 불러요.
Html.RenderPartial(
"ProductImageForm",
image,
new ViewDataDictionary { { "index", index } }
);
이렇게 하면 기본적으로 다른 모든 보기에 있는 기본 보기 데이터가 재정의됩니다.ViewData(보기 데이터)에 추가할 내용이 있는 경우 부분 보기로 전달되는 내용은 이 새 사전에 없습니다.
의 생성자 오버로드를 사용하는 경우 게시된 WMP에 대한 확장을 위해 기존 View Data를 유지하면서 새 View Data를 전달할 수 있습니다.ViewDataDictionary
이와 같이:
Html.RenderPartial(
"ProductImageForm",
image,
new ViewDataDictionary(this.ViewData) { { "index", index } }
);
@Html.Partial("_Header", new ViewDataDictionary { { "HeaderName", "User Management" }, { "TitleName", "List Of Users" } })
or
@{Html.RenderPartial("_Header", new ViewDataDictionary { { "HeaderName", "User Management" }, { "TitleName", "List Of Users" } });}
부분 페이지(_헤더):
<div class="row titleBlock">
<h1>@ViewData["HeaderName"].ToString()</h1>
<h5>@ViewData["TitleName"].ToString()</h5>
</div>
안 되나요?
ViewData["currentIndex"] = index;
강력한 형식의 클래스를 포함하는 다른 클래스를 만듭니다.
클래스에 새 항목을 추가하고 보기에 반환합니다.
그런 다음 보기에서 새 클래스를 상속하고 오류가 발생할 코드 비트를 변경합니다.즉, 필드에 대한 참조입니다.
이게 도움이 되길 바랍니다.그렇지 않으면 알려주시면 구체적인 코드를 올리겠습니다.
이 게시물이 오래된 게시물인 것은 알지만 코어 3.0을 사용하여 비슷한 문제에 직면했을 때 우연히 발견했습니다. 누군가에게 도움이 되길 바랍니다.
@{
Layout = null;
ViewData["SampleString"] = "some string need in the partial";
}
<partial name="_Partial" for="PartialViewModel" view-data="ViewData" />
추가 데이터를 전달하는 가장 쉬운 방법은 기존 ViewData에 데이터를 추가하여 @Joel Martinez 노트로 볼 수 있도록 하는 것입니다.그러나 ViewData를 오염시키지 않으려면 RenderPartial에는 표시된 두 개의 인수 버전뿐만 아니라 세 개의 인수도 사용하는 방법이 있습니다.세 번째 인수는 ViewDataDictionary입니다.전달할 추가 데이터만 포함된 부분에 대해서만 별도의 ViewDataDictionary를 구성할 수 있습니다.
이것도 효과가 있을 겁니다.
this.ViewData.Add("index", index);
Html.RenderPartial(
"ProductImageForm",
image,
this.ViewData
);
동적 변수 ViewBag를 사용할 수 있습니다.
ViewBag.AnotherValue = valueToView;
언급URL : https://stackoverflow.com/questions/1169170/pass-additional-viewdata-to-a-strongly-typed-partial-view
'itsource' 카테고리의 다른 글
간단한 WPF 라디오 버튼 바인딩? (0) | 2023.05.02 |
---|---|
AssertionError: 데이터베이스 연결이 UTC로 설정되지 않았습니다. (0) | 2023.05.02 |
내 Bash 스크립트에 전달된 모든 인수를 내 함수로 전달하는 방법은 무엇입니까? (0) | 2023.04.27 |
Visual Studio 새 브라우저 인스턴스를 열지 않음 (0) | 2023.04.27 |
분산 트랜잭션을 시작할 수 없습니다. (0) | 2023.04.27 |