Исключение нулевого указателя - это индикатор того, что вы используете объект, не инициализируя его.
Например, ниже - класс ученика, который будет использовать его в нашем коде.
public class Student {
private int id;
public int getId() {
return this.id;
}
public setId(int newId) {
this.id = newId;
}
}
Приведенный ниже код дает вам исключение с нулевым указателем.
public class School {
Student obj_Student;
public School() {
try {
obj_Student.getId();
}
catch(Exception e) {
System.out.println("Null Pointer ");
}
}
}
Поскольку вы используете Obj_Student
, но вы забыли инициализировать его, как в правильном коде, показанном ниже:
public class School {
Student obj_Student;
public School() {
try {
obj_Student = new Student();
obj_Student.setId(12);
obj_Student.getId();
}
catch(Exception e) {
System.out.println("Null Pointer ");
}
}
}
Вы должны сделать так:
@Html.DropDownListFor(m => m.ContribType,
new SelectList(Model.ContribTypeOptions,
"ContribId", "Value"))
Где:
m => m.ContribType
- свойство, в котором будет значение результата.
@Html.DropDownListFor(m => m.SelectedValue,Your List,"ID","Values")
Здесь Value - это объект модели, в котором вы хотите сохранить выбранное значение
Для привязки динамических данных в DropDownList вы можете сделать следующее:
Создать ViewBag в контроллере, как показано ниже
ViewBag.ContribTypeOptions = yourFunctionValue();
, теперь использовать это значение, как показано ниже:
@Html.DropDownListFor(m => m.ContribType,
new SelectList(@ViewBag.ContribTypeOptions, "ContribId",
"Value", Model.ContribTypeOptions.First().ContribId),
"Select, please")
Я думаю, что это поможет: в контроллере получить элементы списка и выбранное значение
public ActionResult Edit(int id)
{
ItemsStore item = itemStoreRepository.FindById(id);
ViewBag.CategoryId = new SelectList(categoryRepository.Query().Get(),
"Id", "Name",item.CategoryId);
// ViewBag to pass values to View and SelectList
//(get list of items,valuefield,textfield,selectedValue)
return View(item);
}
и в представлении
@Html.DropDownList("CategoryId",String.Empty)
contribTypeOptions
, напримерnew Contrib {ContribId = -1, Value = "Please Select"}
, и он будет показан в выпадающем списке. Чем вы можете проверить, является лиContribType
-1
, это означает, что пользователь не выбрал какое-либо значение – Sergey Gavruk 18 August 2012 в 20:30SelectList
). Его значение свойства (ContribType
) определяет, что выбрано (как работает привязка модели), а код должен быть только@Html.DropDownListFor(m => m.ContribType, new SelectList(Model.ContribTypeOptions, "ContribId", "Value")
. Вы можете отредактировать ответ, чтобы исправить. – Stephen Muecke 23 October 2016 в 22:12