Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 错误“System.ArgumentNullException:'值不能为null。参数名称:集合”“”ASP:NET MVC Visual Studio 2017数据表_C#_Asp.net Mvc_Visual Studio_Datatables - Fatal编程技术网

C# 错误“System.ArgumentNullException:'值不能为null。参数名称:集合”“”ASP:NET MVC Visual Studio 2017数据表

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

我有一个dataTable,在其中我可以编辑数据

它可以工作,但在我的模型中添加一些需求时却不行,例如:

    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 ();
    }