인프런 커뮤니티 질문&답변
TempData["Message"] 의 값이 NULL이 되는 현상에 관하여 문의드립니다.
해결된 질문
작성
·
424
답변 4
0
dndi12님, 반갑습니다.
작성하신 프로젝트 파일 전체를 압축해서 구글 드라이브 등에서 공유해 주시면
제가 다운로드 받아서 확인해 보고 이상유무를 알려드리겠습니다.
0
동키님, 작성하신 프로젝트 파일 전체를 압축해서 구글 드라이브 등에서 공유해 주시면
제가 다운로드 받아서 확인해 보고 이상유무를 알려드리겠습니다.
에디터에 파일 첨부는 안되는 것 같네요.
정말 번거로우시겠지만, 제가 소스를 구동해 보고 안되면 마이크로소프트에 문의해서라도 알려드리겠습니다.
질문하신 내용은 asp.net core의 기본동작과 관련되기 때문에 꼭 짚고 넘어가야 할 문제거든요.
0
동키님.
보내주신 소스로 확인했을 때, 제 컴퓨터에서는 TempData["Message"] 값이 이상없이 "로그인이 성공적으로 이루어졌습니다." 메시지를 출력하고 있는 것을 확인했습니다.
단지, userId와 password 값이 LoginInfo 클래스의 유효성 검사로 인해서 각각 6자씩 입력해야 로그인됩니다.
번거로우시겠지만, BreakPoint(갈색 줄로 된 부분)를 걸어서 F10을 눌러서 한 줄 한 줄 넘어가면서 TempData["Message"]에 정확히 값이 들어가 있는지 확인 부탁드려요.
0
동키님, 반갑습니다.
작성하신 MembershipController.cs와 Index.cshtml 파일 전체 코드를 답변으로 달아주시면 제가 실행해서 확인하고 알려드리겠습니다.
참고로, 24번 강의에서 프로젝트 리소스를 다운로드 받아 확인하실 수 있습니다.
감사합니다.
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>






return RedirectToAction 하기 전까지는 값이 있다가 Index.cshtml의 부분에서 값이 사라져있네요.
혹시 해당 관련해서 의심 가는 부분 있으신지요.