Asp.net mvc 值不能为null。参数名称:网格剑道中的items foreinkey
创建/更新账户时,汇总后出现错误: 值不能为null。参数名称:列上的项。ForeignKey(p=>p.MaQuyen,(System.Collections.IEnumerable)ViewBag.Quyen,“MaQuyen”,“Quyen”)。标题(“Quyền“;” 我的控制器:Asp.net mvc 值不能为null。参数名称:网格剑道中的items foreinkey,asp.net-mvc,null,foreign-keys,Asp.net Mvc,Null,Foreign Keys,创建/更新账户时,汇总后出现错误: 值不能为null。参数名称:列上的项。ForeignKey(p=>p.MaQuyen,(System.Collections.IEnumerable)ViewBag.Quyen,“MaQuyen”,“Quyen”)。标题(“Quyền“;” 我的控制器: public ActionResult AddAccout(string id) { TbNguoiDung User = new TbNguoiDung(); if(ModelState.IsVal
public ActionResult AddAccout(string id)
{
TbNguoiDung User = new TbNguoiDung();
if(ModelState.IsValid)
{
if(id != null)
{
ViewBag.IDRequest = id;
User = db.TbNguoiDungs.First(m => m.TenDangNhap == id);
ViewBag.Quyen = new SelectList(db.TbQuyens.ToList(), "MaQuyen", "Quyen", User.MaQuyen);
}
else
{
ViewBag.Quyen = new SelectList(db.TbQuyens.ToList(), "MaQuyen", "Quyen");
}
}
if (!Request.IsAjaxRequest())
return View(User);
return PartialView(User);
}
[HttpPost]
public ActionResult AddAccout(TbNguoiDung item, string id)
{
bool state = false;
string mess = "";
if(item != null)
{
if(id != null)
{
//foreach (var a in id)
//{
// a
//}
item.TenDangNhap = Request.Form["UserName"].TrimEnd();
item.MatKhau = DuLieuChung.MaHoaMD5(item.MatKhau);
item.RandomPass ="1234zxcv";
item.MaQuyen = item.MaQuyen;
db.Entry(item).State = EntityState.Modified;
SaveChanges(db);
state = true;
mess = "Thực hiện sửa thành công!";
}
else
{
var check = db.TbNguoiDungs.Where(m => m.TenDangNhap == item.TenDangNhap).FirstOrDefault().TenDangNhap;
if (check == null)
{
item.MatKhau = DuLieuChung.MaHoaMD5(item.MatKhau);
item.RandomPass = "1234zxcv";
item.MaQuyen = item.MaQuyen;
db.TbNguoiDungs.Add(item);
SaveChanges(db);
state = true;
mess = "Thực hiện thêm thành công!";
}
}
//mess = "Lỗi!";
return View("ListAccout");
}
调试时,item.Quyen为1。I F5 Chrome after error=>网格更新
请帮帮我!谢谢 如果(ModelState.IsValid)是GET方法(您没有模型!),那么为什么要使用
if(ModelState.IsValid)
错误消息表明ViewBag.Quyen
为空,您是否在返回视图时分配它。调试你的代码!嗨,斯蒂芬·穆克!非常感谢你!我添加了ViewBag.Quyen=db.TbQuyens.ToList();返回视图之前(“ListAccout”);=>成功了。
namespace TS2015.Models
{
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.Spatial;
using System.Web.Script.Serialization;
using System.Web.Security;
[Table("TbNguoiDung")]
public partial class TbNguoiDung
{
[Key]
[StringLength(10,ErrorMessage="Độ dài tối đa tên đăng nhập là 10 ký tự.")]
[Display(Name="Tên đăng nhập")]
[Required(ErrorMessage="Bạn chưa nhập tên đăng nhập")]
public string TenDangNhap { get; set; }
[Required(ErrorMessage="Bạn chưa chọn Quyền")]
public int MaQuyen { get; set; }
[DataType(DataType.Password)]
[StringLength(32, MinimumLength = 6, ErrorMessage = "Độ dài tối thiểu là 6 và độ dài tối đa là 32")]
[Display(Name = "Mật khẩu")]
[Required(ErrorMessage = "Bạn chưa nhập mật khẩu")]
//[MembershipPassword()]
public string MatKhau { get; set; }
//[Compare("MatKhau", ErrorMessage="Xác nhận mật khẩu không khớp!")]
//[DataType(DataType.Password)]
//[StringLength(32, MinimumLength = 6, ErrorMessage="Độ dài tối thiểu là 6 và độ dài tối đa là 32")]
//[Display(Name = "Xác nhận Mật khẩu")]
//[Required(ErrorMessage = "Bạn chưa nhập xác nhận mật khẩu")]
////[MembershipPassword()]
//public string XacNhanMatKhau { get; set; }
[StringLength(50)]
[DataType(DataType.EmailAddress)]
public string Email { get; set; }
[Required]
[StringLength(8)]
public string RandomPass { get; set; }
public KhoaTaiKhoan KhoaTaiKhoan { get; set; }
[ScriptIgnore]
public TbQuyen TbQuyen { get; set; }
}
}
public ActionResult AddAccout(string id)
{
TbNguoiDung User = new TbNguoiDung();
if(ModelState.IsValid)
{
if(id != null)
{
ViewBag.IDRequest = id;
User = db.TbNguoiDungs.First(m => m.TenDangNhap == id);
ViewBag.Quyen = new SelectList(db.TbQuyens.ToList(), "MaQuyen", "Quyen", User.MaQuyen);
}
else
{
ViewBag.Quyen = new SelectList(db.TbQuyens.ToList(), "MaQuyen", "Quyen");
}
}
if (!Request.IsAjaxRequest())
return View(User);
return PartialView(User);
}
[HttpPost]
public ActionResult AddAccout(TbNguoiDung item, string id)
{
bool state = false;
string mess = "";
if(item != null)
{
if(id != null)
{
//foreach (var a in id)
//{
// a
//}
item.TenDangNhap = Request.Form["UserName"].TrimEnd();
item.MatKhau = DuLieuChung.MaHoaMD5(item.MatKhau);
item.RandomPass ="1234zxcv";
item.MaQuyen = item.MaQuyen;
db.Entry(item).State = EntityState.Modified;
SaveChanges(db);
state = true;
mess = "Thực hiện sửa thành công!";
}
else
{
var check = db.TbNguoiDungs.Where(m => m.TenDangNhap == item.TenDangNhap).FirstOrDefault().TenDangNhap;
if (check == null)
{
item.MatKhau = DuLieuChung.MaHoaMD5(item.MatKhau);
item.RandomPass = "1234zxcv";
item.MaQuyen = item.MaQuyen;
db.TbNguoiDungs.Add(item);
SaveChanges(db);
state = true;
mess = "Thực hiện thêm thành công!";
}
}
//mess = "Lỗi!";
return View("ListAccout");
}