Asp.net mvc 如何在控制器中初始化值?
我有下拉列表:Asp.net mvc 如何在控制器中初始化值?,asp.net-mvc,Asp.net Mvc,我有下拉列表: @Html.DropDownListFor(m => m.Register.SelectCompany, Model.Register.Company, "Please select") 我有一个模型: [Required(ErrorMessage = "*")] [Display(Name = "Company name")] public int SelecCompanyId{ get; set; } public System.Web.Mvc.SelectList
@Html.DropDownListFor(m => m.Register.SelectCompany, Model.Register.Company, "Please select")
我有一个模型:
[Required(ErrorMessage = "*")]
[Display(Name = "Company name")]
public int SelecCompanyId{ get; set; }
public System.Web.Mvc.SelectList CompanyName{ get; set; }
当我尝试这样做时:
companyAccount.Company = (ICompany)Company.Find(model.Register.SelectCompanyId);
我犯了一个错误
具有注册表项“Register.SelectCompanyId”的ViewData项为
类型为“System.Int32”,但必须为
“IEnumerable.”
我还有一节课是:
public class Company: ICompany
{
public int Id { get; set; }
public string CompanyName { get; set; }
}
出现此错误的原因是您的
SelectList
为null
。但您的代码似乎不匹配-方法绑定到属性Register。SelectCompany
但您的模型只有属性SelecCompanyId
,然后是DropDownListFor()中的SelectList
)
是Register.Company
但您的模型只有属性CompanyName
我得到所有公司,但问题是当我选择一个并单击提交按钮时,我得到一个错误…因为companyAccount.Company是一种ICompany…所以我不知道如何初始化它与此无关。这是因为您的选择列表
为null
。我猜您返回了视图,但没有在POST方法中重新分配SelectList
(就像您在GET方法中所做的那样)是的……就是这样……tnx:)