-
카테고리
-
세부 분야
백엔드
-
해결 여부
해결됨
TempData["Message"] 의 값이 NULL이 되는 현상에 관하여 문의드립니다.
21.05.08 00:16 작성 조회수 250
0
03.MVC 패턴 강의에서
로그인 정보가 일치해서 로그인에 성공했을 때
TempData["Message"] = "로그인이 성공적으로 이루어졌습니다." 이렇게 해당 메시지 문자열을 넣고 RedirectToAction("Index", "Membership")를 통해 Index 액션 메소드를 실행 하고 해당 Index 뷰에서 TempData["
Message"] 를하면 해당 값이 NULL 빈 값으로 나옵니다.
해당 관련하여 해결 방안이 있을가요? 제가 무언가 잘못 입력한 것 같지는 않긴하거든요.
답변을 작성해보세요.
0
김정수
지식공유자2021.08.16
dndi12님, 반갑습니다.
작성하신 프로젝트 파일 전체를 압축해서 구글 드라이브 등에서 공유해 주시면
제가 다운로드 받아서 확인해 보고 이상유무를 알려드리겠습니다.
0
김정수
지식공유자2021.05.08
동키님, 작성하신 프로젝트 파일 전체를 압축해서 구글 드라이브 등에서 공유해 주시면
제가 다운로드 받아서 확인해 보고 이상유무를 알려드리겠습니다.
에디터에 파일 첨부는 안되는 것 같네요.
정말 번거로우시겠지만, 제가 소스를 구동해 보고 안되면 마이크로소프트에 문의해서라도 알려드리겠습니다.
질문하신 내용은 asp.net core의 기본동작과 관련되기 때문에 꼭 짚고 넘어가야 할 문제거든요.
0
김정수
지식공유자2021.05.08
동키님.
보내주신 소스로 확인했을 때, 제 컴퓨터에서는 TempData["Message"] 값이 이상없이 "로그인이 성공적으로 이루어졌습니다." 메시지를 출력하고 있는 것을 확인했습니다.
단지, userId와 password 값이 LoginInfo 클래스의 유효성 검사로 인해서 각각 6자씩 입력해야 로그인됩니다.
번거로우시겠지만, BreakPoint(갈색 줄로 된 부분)를 걸어서 F10을 눌러서 한 줄 한 줄 넘어가면서 TempData["Message"]에 정확히 값이 들어가 있는지 확인 부탁드려요.
BDK
질문자2021.05.08
return RedirectToAction 하기 전까지는 값이 있다가 Index.cshtml의 부분에서 값이 사라져있네요.
혹시 해당 관련해서 의심 가는 부분 있으신지요.
0
김정수
지식공유자2021.05.08
동키님, 반갑습니다.
작성하신 MembershipController.cs와 Index.cshtml 파일 전체 코드를 답변으로 달아주시면 제가 실행해서 확인하고 알려드리겠습니다.
참고로, 24번 강의에서 프로젝트 리소스를 다운로드 받아 확인하실 수 있습니다.
감사합니다.
BDK
질문자2021.05.08
MembershipController.cs
using Microsoft.AspNetCore.Mvc;
using NetCore.Web.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace NetCore.Web.Controllers
{
public class MembershipController : Controller
{
public IActionResult Index()
{
return View();
}
[HttpGet]
public IActionResult Login()
{
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult Login(LoginInfo login)
{
string message = string.Empty;
if (ModelState.IsValid)
{
string userId = "dk";
string password = "111";
if (login.UserId.Equals(userId) && login.Password.Equals(password))
{
TempData["Message"] = "로그인이 성공적으로 이루어졌습니다.";
return RedirectToAction("Index", "Membership");
}
else
{
message = "로그인되지 않았습니다.";
}
}
else
{
message = "로그인 정보를 올바르게 입력하세요.";
}
ModelState.AddModelError(string.Empty, message);
return View();
}
}
}
Index.cshtml
@{
ViewData["Title"] = "멤버십";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>@ViewData["Title"]</h2>
<div class="text-info">@TempData["Message"]</div>
답변 4