C# 错误“System.ArgumentNullException:'值不能为null。参数名称:集合”“”ASP:NET MVC Visual Studio 2017数据表
我有一个dataTable,在其中我可以编辑数据 它可以工作,但在我的模型中添加一些需求时却不行,例如:C# 错误“System.ArgumentNullException:'值不能为null。参数名称:集合”“”ASP:NET MVC Visual Studio 2017数据表,c#,asp.net-mvc,visual-studio,datatables,C#,Asp.net Mvc,Visual Studio,Datatables,我有一个dataTable,在其中我可以编辑数据 它可以工作,但在我的模型中添加一些需求时却不行,例如: public class ModelTemplateEmail { [Display(Name = "EmailId")] public int EmailId { get; set; } [Display(Name = "UserName")][StringLength(20, ErrorMessage = "Do not enter more
public class ModelTemplateEmail
{
[Display(Name = "EmailId")]
public int EmailId { get; set; }
[Display(Name = "UserName")][StringLength(20, ErrorMessage = "Do not enter more than 20 characters")]
[MaxLength(20)]
[Required(ErrorMessage = "Please enter a User name")]
public string userName { get; set; }
[Display(Name = "Email")]
[DataType(DataType.EmailAddress)]
[Required(ErrorMessage = "Please enter an Email")]
[RegularExpression(@"^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$", ErrorMessage = "Email is not valid.")]
public string Email { get; set; }
[Display(Name = "Title")]
public string Title { get; set; }
[Display(Name = "Description")]
public string description { get; set; }
public List<ModelTemplateEmail> EmailDataList { get; set; }
[Key]
public int languageID { get; set; }
[Display(Name = "Language")]
public string MainLanguage { get; set; }
}
我通过在http post方法中添加MainLanguagelist;修复了它。可能ViewBag.MainLanguage值为空。请确保在返回视图之前在控制器上设置它。
@Html.DropDownListFor(model => model.languageID, new List<SelectListItem>(ViewBag.MainLanguage), new { @class = "form-control" })
public void MainLanguagelist()
{
var sqlstring = string.Format("SELECT [languageID], [MainLanguage] FROM [dbo].[Language]");
var myConnection = getconection();
SqlCommand myCommand = new SqlCommand(sqlstring, myConnection);
myCommand.ExecuteNonQuery();
SqlDataAdapter Language = new SqlDataAdapter(myCommand);
DataSet setLanguageData = new DataSet();
Language.Fill(setLanguageData);
ViewBag.MainLanguageList = setLanguageData.Tables[0];
List<SelectListItem> MainLanguageList = new List<SelectListItem>();
foreach (DataRow MainLanguage in ViewBag.MainLanguageList.Rows)
{
MainLanguageList.Add(new SelectListItem {Text = @MainLanguage["MainLanguage"].ToString(),
Value = @MainLanguage["languageID"].ToString()});
}
ViewBag.MainLanguage = MainLanguageList;
try
{
myConnection.Close();
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
}
public ActionResult EditData(int EmailId, string userName, string Title, string Email, string description, int languageID)
{
ModelTemplateEmail Editdata = new ModelTemplateEmail
{
EmailId = EmailId, userName = userName, Email = Email, description = description,
Title = Title, languageID = languageID
};
MainLanguagelist();
return View(Editdata);
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult EditData(ModelTemplateEmail modelEmail)
{
UpdateDataBase(modelEmail.EmailId, modelEmail.userName, modelEmail.Title,
modelEmail.Email,modelEmail.description, modelEmail.languageID);
return View ();
}