Telerik MVC UI 자동 완성 기능이 내 EducationEntities와 작동하지만 null을 반환합니다. 왜 그런지 몰라?ASP.NET MVC Telerkik 자동 완성 레코드가 표시되지 않습니다.
@(Html.Kendo().AutoComplete()
.Name("students")
.DataTextField("DisplayName")
.Placeholder("Enter student name")
.DataSource(source =>
{
source.Read(read =>
{
read.Action("GetStudents", "StudentDetails").Data("onAdditionalData"); ;
}).ServerFiltering(true);
})
.HtmlAttributes(new { style = "width:240px" })
.Filter(FilterType.Contains)
.MinLength(1)
.Suggest(true)
.Height(340)
.HeaderTemplate("<div class=\"dropdown-header\">" +
"<span class=\"k-widget k-header\">Photo</span>" +
"<span class=\"k-widget k-header\">Contact info</span>" +
"</div>")
.Template("<span><img src='/Content/Images/${data}.jpg' " +
"width='20' height='20' /> ${data}</span>")
.Template("<span class=\"k-state-default\"><h3>#: data.DisplayName #</h3></span>")
.Template("<span class=\"k-state-default\"><img src=\"" + Url.Content("~/Content/Images/") + "#:data.StudentID#.jpg\" alt=\"#:data.StudentID#\" /></span>" +
"<span class=\"k-state-default\"><h3>#: data.DisplayName #</h3><p>#: data.Address #</p></span>")
)
여기에 전체 학생의 정보를 반환해야 내 작업입니다 : 다음은 내 코드입니다. 이에 따라
public JsonResult GetStudents(string name)
{
//initialize the result
var students = new List<StudentModel>();
//check for filter value; if any, than filter
if (!string.IsNullOrEmpty(name))
{
students = new EducationEntities().Student
.Where(student => student.DisplayName.Contains(name))
.Select(student => new StudentModel
{
StudentID = student.StudentID,
DisplayName = student.DisplayName,
FirstName = student.FirstName,
LastName = student.LastName
}).ToList();
}
else
{
//depending on your requirements, you could return all the students when there's no filter set
students = new EducationEntities().Student.Select(student => new StudentModel
{
StudentID = student.StudentID,
DisplayName = student.DisplayName,
FirstName = student.FirstName,
LastName = student.LastName
}).ToList();
}
return Json(students, JsonRequestBehavior.AllowGet);
}
명시 적으로 호출 할 필요가 있습니다
학생 모델
public class StudentModel
{
public int StudentID { get; set; }
public string DisplayName { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
을 만들고 작업을 변경 :
public JsonResult GetStudents(string name)
{
var students = new EducationEntities().Student.Select(student => new Student
{
StudentID = student.StudentID,
DisplayName = student.DisplayName,
FirstName = student.FirstName,
LastName = student.LastName
});
if (!string.IsNullOrEmpty(name))
{
students = students.Where(p => p.DisplayName.Contains(name));
}
return Json(students, JsonRequestBehavior.AllowGet);
}
'onAdditionlaData'에서 무엇을 서버에 보냅니 까? –
function onAdditionalData() { return { name : $ ("# students") val() }; } –
올바른 값이 컨트롤러로 전송되는지 확인 했습니까? 중단 점을 설정하고'name' 매개 변수에 들어오는 데이터를 검사하십시오. 그게 네가 원하는대로 말해줘. –