Dropdownlistfor бросает ссылка на объект не указывает на экземпляр объекта.
У меня есть набор файлов, когда пользователь выбирает файл из выпадающего списка, я хочу отобразить его содержимое.
Что я делаю не так?
Что я уже пробовал:
Это модель:
public class StudentTest { public List<SelectListItem> files { get; set; } public string currentPath { get; set; } public string inputText { get; set; } public string correctOutput { get; set; } public string studentOutput { get; set; } }
Вид:
@using (Html.BeginForm("Test", "Development")) { @Html.DropDownListFor(model => model.currentPath, Model.files, "Select test case", new { @class = "dropdown", onchange = "this.form.submit();" }) } <br /> <br /> <div class="CodeMirror cm-s-zenburn cm-error cm-bracket" style="position:absolute;border:solid;top:200px;left:10px;width:500px"> @Html.TextAreaFor(model=>model.inputText,new { id = "inputText"}) </div>
И контроллер:
public ActionResult Test() { st = new StudentTest(); var user = UserManager.FindById(((Student)CurrentUser).InstructorID); Instructor Instructor = (Instructor)user; st.files = new List<SelectListItem>(); var files = Directory.GetFiles(Server.MapPath("~/Content/" + Instructor.UserName + "/inputs")); foreach (var file in files){ st.files.Add(new SelectListItem { Text = Path.GetFileName(file), Value= file }); } return View(st); } [HttpPost] public ActionResult Test(string x) { st = new StudentTest(); var user = UserManager.FindById(((Student)CurrentUser).InstructorID); Instructor Instructor = (Instructor)user; st.files = new List<SelectListItem>(); var files = Directory.GetFiles(Server.MapPath("~/Content/" + Instructor.UserName + "/inputs")); foreach (var file in files) { st.files.Add(new SelectListItem { Text = Path.GetFileName(file), Value = file }); } st.inputText = System.IO.File.ReadAllText(x); return View(st); }