我所拥有的是在模型中声明的业务对象实体类变量,但是当我尝试将类变量的成员绑定到html.dropdownlist时它不起作用:
所以这是我的模特:
public class pc
{
public pcp pk{get;set;}
public int zip{get;set;}
List<Suf> SufList{get;set;} //**
}
这里pk是业务对象pcp的变量
public class pcp :basec
{
[Key]
public int pcid;
}
public class basec
{
// **public string suf**
}
现在在我看来,我调用将上面的模型绑定到下拉列表: m是模型,即类pc
@Html.DropDownListFor(m => m.pk.suf, new selectlist(m => m.SufList,
"Key", "Value", m.pk.suf)
它提供了例外Object reference not set to an instance of an object
在这下降。
但同时如果我直接在m中声明suf变量并使用如下的绑定:
@Html.DropDownListFor(m => m.suf, new selectlist(m => m.SufList,
"Key", "Value", m.suf)
它有效,但这不是您想要的方式。
关于我需要在这里做什么的任何建议,把它设置好吗?
答案 0 :(得分:0)
此错误表示您的属性pk
为空,但您尝试访问其上的属性(suf
)。确保您的属性pk
具有值(在将模型传递给视图之前在控制器中将其设置在模型上)并且错误应该消失。
呈现视图的控制器操作示例:
public ViewResult YourAction() {
pcp model = new pcp {
pk = new pk(),
SufList = new SufList {
// Set list items here
}
// set other properties as needed
};
return View("YourViewName", model);
}
另外,我强烈建议使用更具描述性的类和属性名称(而不是缩写)和一致的命名约定。通常,C#用法是CamelCase类/属性名称,首字母大写。