로그인 페이지의 "ActionResult"메소드가있는 MVC 4에서 로그인 후 사용자 이름 (billnumber)을 기반으로 사용자 이름과 비밀번호가 텍스트 상자에 입력됩니다. 해당 billnumber (사용자 이름)의 데이터를 가져 와서 현재 모든 것이 잘 작동하고 있습니다. 하나의보기에서 사용자 이름을 가져 와서 추가 검증을 위해 다른 사람에게 보낼 수 있습니다. Viewdata에 "username"과 "usertypeID"를 저장하고 그 값은 다음 뷰로 전달되지만 ViewData의 데이터는 더 오랜 시간 동안 유지되지 않으며 페이지를 여러 번 (10에서 20 번) 새로 고침하려고해도 저장 및 전달했던 코드는 아래에 있습니다 액세스ViewData MVC 4의 값 보존
여기가 내가 값을 저장하는 곳입니다.
난을 ViewData FROM I가 파라미터로서 PatID 및 PersonType 통과하고 String PatID = Convert.ToString(ViewData["message"].ToString());
int PersonType = Convert.ToInt32(ViewData["person"]);
값 어디서
public ActionResult ValidateLogIn(FormCollection postedFormData)
{
// codes
TempData["UsrName"] = LoginViewModel.LoginDataModel.UserName;
// codes
}
public ActionResult LandingPage()
{
ViewData["message"] = TempData["UsrName"].ToString();
ViewData["person"] =Convert.ToInt32(TempData["UserTypeID"]);
TempData.Keep();
PatientDetailsViewModel PatientDetailsViewModel = new PatientDetailsViewModel();
String PatID = Convert.ToString(ViewData["message"].ToString());
int PersonType = Convert.ToInt32(ViewData["person"]);
PatientUnderDoctorDetailsViewModel = PatientUnderDoctorDataAccessService.PatientUnderDocLogInEnquiry(PatID);
}
이 0은 여기에서 난을 ViewData에
ViewData["message"] = TempData["UsrName"].ToString();
ViewData["person"] =Convert.ToInt32(TempData["UserTypeID"]);
TempData.Keep();
을 저장할 곳이다 AND 다음 방법,
처음에는 Te를 사용하지 않았습니다. mpData.keep(); 그래서 한 번 오류를 얻으려고 한 번 atleast 페이지를 새로 고치면 검색 시도하고 TempData를 발견하지만, 나는 5 분 동안 응용 프로그램을 유휴 상태로두고 페이지를 한 번 새로 고치면 오랜 시간 동안 효율적이지 않다고 믿는다. 내가
이 알려 필요한 tempdata가 비어 (NULL)
내가했던 어떤 실수가, 또는 데이터가 I 때까지 변수에 저장 될 수있는이 문제를 해결하기 위해 더 나은 방법이 응용 프로그램을 종료하십시오.
왜'Session' 객체를 사용하지 않습니까? –
답장을 보내 주셔서 감사합니다 @inanikian, 내가 sesson 대 viewdata, 웹 사이트의 일부 ViewData에 대한 더 많은 (내가 틀렸다면 알려주십시오), 그리고 실제로 세션을 사용할 수있는 제안했다 더 많은 혼란을 겪었어요 Viewdata 이상, 나는 그것을 사용하여 마음을 모르지만, 쿠키로 데이터를 저장하지 않는 매개 변수를 전송하는 것이 가장 좋습니다, 감사합니다 – Manjuboyz
당신은 이것을 위해 TempData 또는 Session을 사용할 수 있습니다. –