2011-01-14 3 views
0

가변 길이 목록을 편집하고 ViewData를 사용하여 DropDownList 채우기 정보를 전달합니다. 이 목록을 편집 할 때 여기에 설명 된 방법을 사용합니다. http://blog.stevensanderson.com/2010/01/28/editing-a-variable-length-list-aspnet-mvc-2-style/가변 길이 목록 편집시 ViewData 유지

이 드롭 다운 목록의 데이터는 데이터베이스에서 가져옵니다. ViewData를 여러 요청에서 사용할 수 없기 때문에 현재는 매번 데이터베이스에 새로운 쿼리를 수행합니다. 이는 ModelState가 유효하지 않고 양식이 다시 표시 될 때도 발생합니다. 물론 이것은 경량 쿼리의 경우에도 적합하지 않습니다.

사용자가 해당 가변 길이 목록을 사용하여 페이지를 편집하는 동안 해당 요청에 대한 정보를 어떻게 유지할 수 있습니까?

답변

0

사용자가 고유 한 목록 인 경우 Session에 저장할 수 있습니다. 모든 사용자가 공유하는 경우 Cache에 저장할 수 있습니다. 두 경우 모두 저장된 목록은 만료 될 수 있으며 만료되므로 다시 질의 할 준비가되어 있어야합니다.

+0

이전에는 세션 환경을 사용한 적이 없습니다. 다시 쿼리해야하는지 여부를 어떻게 알 수 있습니까? 세션에서 데이터에 액세스하고 있는데 뷰에서 일부 데이터를 더 이상 사용할 수 없다는 것을 어떻게 알 수 있습니까? – Pieter

+0

글쎄, 다시 쿼리하지 않아도됩니다. 즉, if (Session [ "Foo"] == null) {'). 즉, DB 쿼리에는 문제가 없습니다. 조기에 최적화하지 않았는지 확인하십시오. –

관련 문제