[英]Value cannot be null. Parameter name: items (in Dropdown List) ASP.NET MVC5
[英]Value cannot be null. Parameter name: items MVC5(DropDownlist)
我的模態
public class Employee
{
[Key]
public int ID { get; set; }
[MaxLength(10,ErrorMessage ="Max Lenght 20")]
public string Name { get; set; }
[MaxLength(20,ErrorMessage ="Max Lenght 20")]
public string Address { get; set; }
public decimal Salary { get; set; }
[DataType(DataType.DateTime)]
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}")]
[Display(Name ="Date of Joining")]
public DateTime Dateofjoin { get; set; }
[DataType(DataType.EmailAddress)]
public string Email { get; set; }
public List<CityModal> City { get; set; }
[Display(Name="City")]
public int CityId { get; set; }
public string CityName { get; set; }
}
public class CityModal {
public string CityId { get; set; }
public string CityName { get; set; }
}
下拉列表視圖
<div class="form-group">
@Html.LabelFor(model => model.CityId, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownListFor(model => model.CityId, new SelectList(ViewBag.city, "CityId", "CityName"), "Select")
@Html.ValidationMessageFor(model => model.CityId, "Please select the City", new { @class = "error" })
</div>
</div>
調節器
[HttpGet]
public ActionResult Create()
{
using (RegMVCEntities obj = new RegMVCEntities())
{
ViewBag.city = obj.tblCities.Select(e => new CityModal
{
CityName = e.City,
CityId = e.ID
}).ToList();
}
return View();
}
[HttpGet]
public ActionResult Edit(int id)
{
using (RegMVCEntities obj = new RegMVCEntities())
{
var query = (from reg in obj.tblRegistrations
join citi in obj.tblCities on reg.CityID equals citi.ID
where reg.ID == id
select new Employee
{
ID = reg.ID,
Name = reg.Name,
Address = reg.Address,
Salary = reg.Salary,
Dateofjoin = reg.DateOfJoining,
Email = reg.Email,
CityId = citi.ID,
CityName = citi.City
}).FirstOrDefault();
/*var employee = obj.tblRegistrations.Where(m => m.ID == id).Select(e => new Employee {
ID = e.ID,Name = e.Name, Address = e.Address, Dateofjoin = e.DateOfJoining, Salary = e.Salary, Email = e.Email
}).FirstOrDefault();*/
return View(query);
}
}
在這里,我檢查了控制器查詢中是否具有結果並包含CityId,但查看顯示“值不能為null。參數名稱:items”。 我認為create方法遇到了一些我沒有遇到的麻煩。 需要幫助。
ViewBag.city
是在Create
操作的GET版本中設置的,但我想您可能已經忽略了在POST版本中再次設置它的情況。 但是,您已經發布了該代碼。 此外,也沒有在“ Edit
操作中設置它。 這可能與當前問題無關,但是可能很快就會成為一個問題。
通常,例外情況是告訴您items
參數(即SelectList
構造函數的第一個參數)為null。 如果未在您的操作中設置ViewBag.city
是什么。 由於它是您的GET版本,因此我只能假定當再次返回視圖以允許用戶進行必要的編輯時,由於驗證錯誤而收到此異常。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.