2017-04-11 4 views
0

MVC 응용 프로그램을 수행하고 있습니다.mvc보기 내에서 숨겨진 필드를 읽습니다.

다른보기가있는 부분보기가 있습니다.

첫 번째로 partial View 사용자가 로그인 한 경우 사용자 ID는 Hidden Field입니다.

나의 첫 부분보기이

@model의 Prj.Models.UserLoginModel

모델은 다음과 같이처럼 상속 ..

public class UserLoginModel 
 
    { 
 
     public long User_id { get; set; } 
 
     public bool Keep { get; set; } 
 
     public byte[] Picture { get; set; } 
 
     public string Name { get; set; } 
 
     public string LastName { get; set; } 
 
    
 
    }

나는 숨어있다. 필드

@ Html.HiddenFor (모델 => model.User_id)

다른 부분보기, 그것은

@model PagedList.IPagedList<Prj.Models.CommentModel> 
에서 상속합니다 PagedList

을 렌더링하는 데 사용되는 IEnumerable입니다

public class CommentModel 
 
    { 
 
     public long Upload_id { get; set; } 
 
     public long User_id { get; set; } 
 
     public string Description { get; set; } 
 
     }

보기 사용자의 모델을 확인해야합니다. 그것을 읽을 추적 할 수없는 가망 Si 또는 내가 두 번째 부분보기의 모델에서 사용자 ID를 포함해야하는 경우

@foreach (var item in Model) 
 
    { 
 
    ask item.User_id == PartialView1.Hidden.User_id 
 
}

내 질문은? 이 부분 뷰의 아이 모델이 기본보기에 모델을 가지고, 그들은 같은 전달받을 경우

답변

0

다음

@{ Html.RenderPartial("partial", Model.PartialViewModel); } 

대신 상위 모델에 전달할 수 :

@{ Html.RenderPartial("partial", Model); } 

그리고 부모의 모든 속성에 액세스 할뿐만 아니라, 하위 모델 :

Model.PartialViewModel.UserID 
+0

감사합니다. 다른 모델 .. 하나의 모델에는 사용자 ID와 그림이 있고 두 번째 모델에는 IEnumerable 이 PagedList에 렌더링되어 있습니다. 나는 User Logged가 어떤 의견을 쓴 사람과 같은지 알아야합니다. – Diego

+0

당신의 질문에서 그다지 분명하지 않았습니다. 아마도 모델을 추가하고 View의 코드를 추가하여 좀 더 자세히 설명하고 싶을 것입니다. – sleeyuen

+0

내가 더 많은 의견을 추가 .. 명확히하기 – Diego

0

부분보기는 다른 HTML 페이지이므로 서로의 요소를 인식하지 못합니다. 렌더링 된 후에 자바 스크립트를 통해 액세스 할 수있는 모든 부분 뷰의 컨텐츠가 포함 된 하나의 큰 HTML 페이지

부분 뷰가 변수를 공유하도록하려면 변수가 포함 된 모델을 부분 뷰 모두에 전달해야합니다 또는 javascript $ (document)에서 무언가를 사용하십시오.하나의 부분보기에서 필드의 숨겨진 필드 값을 다른 부분보기로 전송하는 기본 HTML 페이지에서 준비하십시오.

EDIT - 두보기는 모두 다른보기 모델입니다. 당신이 할 수있는 한 가지는 userId 변수를 가진 baseviewmodel을 만든 다음 두 뷰 모델을 모두 baseview 모델에서 상속 받아 두 변수 모두에서 사용하도록하는 것입니다 - 예 - https://www.danylkoweb.com/Blog/aspnet-mvc-model-make-a-baseviewmodel-for-your-layouts-PX

관련 문제