net.core显示数据库数据页面出错
问题描述:
答
controller 的代码怎么写的? 打个断点调试。看看数据查询出来没。这个错误就是Model没有查到数据 为空了。
加判断 @if(Model!=null){
foreach(){
........
}
}
答
using CreditApply.Models;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
using System.IO;
namespace CreditApply.Controllers
{
public class SysUserController : Controller
{
private readonly SysUserService _sysUserService;
public SysUserController(SysUserService SysUserService)
{
_sysUserService = SysUserService;
}
public IActionResult Index()
{
return View();
}
public IActionResult Login()
{
SysUser sysuser = new SysUser
{
Name = Request.Cookies["UserName"] != null ? Request.Cookies["UserName"] : "",
Pwd = Request.Cookies["UserPwd"] != null ? Request.Cookies["UserPwd"] : "",
};
return View(sysuser);
}
[HttpPost]
public IActionResult Login(SysUser model)
{
//string code = Request.Form["validateCode"].ToString().ToLower();
//string verifyCode = HttpContext.Session.GetString("ValidateCode").ToLower();
//if (code == verifyCode)
//{
//用户名和密码正确
if (_sysUserService.Login(model))
{ //保存用户信息
HttpContext.Session.SetString("UserName", model.Name);
Response.Cookies.Append("UserName", model.Name);
Response.Cookies.Append("UserPwd", model.Pwd);
if (model.Name == "admin")
{
return RedirectToAction("Index", "Home");
}
else
{
return RedirectToAction("StudentIndex", "Home");
}
}
else
{
ViewBag.Msg = "用户名和密码有误";
}
//}
//else
//{
//}
return View(model);
}
public IActionResult Logout()
{
HttpContext.Session.Clear();
return RedirectToAction("Login");
}
public IActionResult ValidateCode()
{
VerifyCodeServices _vierfyCodeServices = new VerifyCodeServices();
string code = "";
MemoryStream ms = _vierfyCodeServices.Create(out code);
HttpContext.Session.SetString("ValidateCode", code);
Response.Body.Dispose();
return File(ms.ToArray(), @"image/png");
}
public IActionResult Search()
{
string search = Request.Form["search"];
List<SysUser> list = _sysUserService.SearchSysUsers(search);
return View("Index", list);
}
}
}
答
public IActionResult Index()
{
return View();
}
没有这个action对应的是index.cshtml 这个方法你没有传值(Model),所以界面上 Model是空的
你只在Login页面传了,
改成
public IActionResult Index()
{
SysUser sysuser = new SysUser
{
Name = Request.Cookies["UserName"] != null ? Request.Cookies["UserName"] : "",
Pwd = Request.Cookies["UserPwd"] != null ? Request.Cookies["UserPwd"] : "",
};
return View(sysuser);
}
试试