시나리오 : 사용자가 성공적으로 로그인 한 후, 내가 계정 객체를 생성 (Account 클래스 내 모델의 일부) 및 인출과에 사용자의 정보를 저장할. 이 Account 객체를 모든 내 컨트롤러 (HomeController, AccountController 등)에 액세스 할 수있게하려면 모든 컨트롤러 내부에서 내용을 편집 할 수 있어야합니다. (1)이 시나리오를 어떻게 달성 할 수 있습니까? (2) 한 컨트롤러에서 다른 컨트롤러로 모델 객체를 전달하려면 어떻게해야합니까?여러 컨트롤러에서 Model 객체를 사용하는 방법은 무엇입니까?
답변
나는 사용자가 그런 다음 세션을 사용할 수 있습니다
을 로그 아웃 할 때까지 그것을 유지하려는. 그러나 많은 정보를 저장하지 않는 것이 좋습니다. 예를 들어 당신이 모델 또는 법인이 그래서 :
public class AccountModel {
public int Id {get;set;}
public string Username {get;set;}
// and a whole lot more of properties
}
을 나는, 당신은 단지 identifier
필드를 저장 제안 중 하나 Id
또는 Username
. 다른 요청이 와서 당신도 같은 모델, 당신은 할 수 요청 또는 업데이트의 유효성을 검사 할 필요가 그런 때
- 필요한 필드 해당 사용자 및 모든 관련 정보
- 업데이트에 대한 데이터를 다시 가져 오기를
- 데이터베이스에 저장
그래서 당신이 할 법한 :
// to save it in a session after logging in
Session["current_user_id"] = id_variable;
// to retrieve it from session after another request comes in
var id = (int)Session["current_user_id"];
// fetch from your database
// do the necessary update
// persist the changes
고마워. 나는 당신이 제안하는 것처럼 행동 할 것이다. 세션을 사용하여 사용자의 AccountID를 저장 한 다음, 필요할 때마다 데이터베이스에서 그의 세부 정보를 가져 오는 데 사용한다. –
당신을 진심으로 환영합니다. 세션이 만료되므로 세션 항목이 null이 아닌지 확인하십시오. –
(1) 어떻게이 시나리오를 달성 할 수 있습니까?
액세스해야 할 때 데이터 저장소에서 계정 모델을 검색 할 수 있습니다.
(2) 한 컨트롤러에서 다른 컨트롤러로 모델 개체를 전달하려면 어떻게해야합니까?
(1)를 참조하십시오. 데이터 저장소에서 데이터를 가져오고 있으므로이를 전달할 필요가 없습니다.
사용자가 로그인하면 Account 개체를 만들고 데이터베이스에서 그의 세부 정보를 가져 와서 계정 개체를 채 웁니다. 그런 다음 다른 컨트롤러 (보기에서 사용자가 자신의 계정 정보를 편집 할 수있는 기능 제공)에서 편집 한 내용을 이전에 만든 SAME 계정 개체에 저장하고 변경 내용을 데이터베이스에 저장합니다. –
- 1. 각도 컨트롤러에서 사용자 정의 클래스 인스턴스/객체를 사용하는 방법은 무엇입니까?
- 2. 세션에서 객체를 설정하고 모든 컨트롤러에서 사용하는 방법은 무엇입니까?
- 3. 컨트롤러에서 여러 json 객체를 반환하십시오.
- 4. 컨트롤러에서 여러 개의 activerecord 객체를 뷰로 전달하는 방법은 무엇입니까?
- 5. 컨트롤러에서 'truncate'메서드를 사용하는 방법은 무엇입니까?
- 6. EF를 사용하여 컨트롤러에서 객체를 업데이트하는 방법은 무엇입니까?
- 7. 컨트롤러에서 데이터베이스에 객체를 생성하는 올바른 방법은 무엇입니까?
- 8. 내 컨트롤러에서 무제한 객체를 생성하는 방법은 무엇입니까?
- 9. 다른보기에서 ng-model/bind를 사용하는 방법은 무엇입니까?
- 10. Model 메서드와 함께 스코프를 사용하는 방법은 무엇입니까?
- 11. 레일스의 여러 컨트롤러에서 객체를 어떻게 렌더링해야합니까?
- 12. 컨트롤러에서 Ruby on Rails의 Model 메소드에 인수를 전달하는 방법은 무엇입니까?
- 13. ModelAndView에 여러 객체를 추가하는 방법은 무엇입니까?
- 14. get 컨트롤러에서 post 컨트롤러로 객체를 커밋하는 방법은 무엇입니까?
- 15. Model 객체를 JSON에 전달
- 16. List를 사용하여 Model Map의 객체를 Spring에 표시하는 방법은 무엇입니까?
- 17. Django : DB에 추가하기 전에 Model 객체를 조작하는 방법은 무엇입니까?
- 18. Model View Controller 패턴을 사용하여 그려진 객체를 조작하는 방법은 무엇입니까?
- 19. MVC 컨트롤러에서 메시지 상자를 사용하는 방법은 무엇입니까?
- 20. 컨트롤러에서`verify` 메소드를 사용하는 방법은 무엇입니까?
- 21. 다른 프로젝트의 컨트롤러에서 HtmlHelper를 사용하는 방법은 무엇입니까?
- 22. Yii2의 콘솔 컨트롤러에서 모델을 사용하는 방법은 무엇입니까?
- 23. 컨트롤러에서 수집 된 데이터를 사용하는 방법은 무엇입니까?
- 24. laravel에서 컨트롤러에서 센티널을 사용하는 방법은 무엇입니까?
- 25. 컨트롤러에서 세션 정의 변수를 사용하는 방법은 무엇입니까?
- 26. ARM 마이크로 컨트롤러에서 CMUsphinx를 사용하는 방법은 무엇입니까?
- 27. 컨트롤러에서 데이터의 여러 문장을 피하는 방법은 무엇입니까?
- 28. 컨트롤러에서 여러 목록을 올바르게 전달하는 방법은 무엇입니까?
- 29. ASP.NET MVC 컨트롤러에서 JSON 객체를 반복하는 방법은 무엇입니까?
- 30. 레일 컨트롤러에서 선택하는 방법은 무엇입니까?
당신이 그것을 유지 하시겠습니까과 나중에 다른 요청에서 사용 하시겠습니까? 아니면 (단일) 요청이 지속되는 동안 그것을 사용하고 전달하면됩니까? –
사용자가 로그 아웃 할 때까지 계속 유지하려고합니다. –