0

ドロップダウンリストにバインドしたいテーブル tblemployee から選択したデータに問題があります。

モデル

 public class UserModels
{
    public string EmployeeName { get; set; }
    public int EmployeeCode { get; set; }
    public IEnumerable<SelectListItem> Employee { set; get; }
}

コントローラ

public ActionResult Education() {

        var query = (from e in context.tblEmployee_Employee
                     select new
                     {
                         empID = e.Code,
                         EmpName = e.NameEng
                     }
                              ).ToList();

        var model = new UserModels();
        var _Emp = query;
        foreach (var item in _Emp)
        {
            model.EmployeeCode = item.empID;
            model.EmployeeName = item.EmpName;
            model.Employee = new SelectList(_Emp, "EmpName", "EmpName");

        }

        return View(model);
    }

意見

 <%= Html.DropDownListFor(x => x.EmployeeName, Model.Employee, "select EmployeeName")%>

そして、「オブジェクト参照がオブジェクトのインスタンスを設定していません」というエラーメッセージが表示されました。ご存知の方は、解決方法を教えてください。ありがとう、

4

1 に答える 1

0

このようにしてみてください:

public ActionResult Education() 
{
    var model = new UserModels();
    model.Employee = context
        .tblEmployee_Employee
        .ToList()
        .Select(e => new SelectListItem
        {
            Value = e.Code.ToString(),
            Text = e.NameEng
        });
    return View(model);
}

UserModelsそして、ビューがビューモデルに強く入力されていることを確認してから、次のようにします。

<%= Html.DropDownListFor(
    x => x.EmployeeName, 
    Model.Employee, 
    "select EmployeeName"
) %>
于 2012-08-01T16:43:54.927 に答える