MVC 4 Changing a field based on DropDownListFor selectionMVC 4 Изменение несколько полей отображения на основе выбора DropDownListFor
Во-первых, почти такой же, как выше вопрос, но решение не работает для этого.
У меня есть страница, которая будет содержать выпадающий список. после выбора он изменит поля отображения на основе выбора.
Javascript в представлении является:
<script type="text/javascript">
$(function(){
$('#courseName').on('change', function() {
var courseID = $(this).val();
var studentID = '@ViewBag.StudentID';
$.ajax({
url: '@Url.Action("FillCourseInfo", "Student")',
data: {StudentID: studentID, CourseID: courseID},
type: 'get'
}).done(function(data){
$('#courseStartDate').text(data.courseStartDate);
$('#courseEndDate').text(data.courseEndDate);
$('#projectName').text(data.projectName);
$('#graduated').text(data.graduated);
});
});
});
</script>
Вид:
<tr>
<th class="table-row">
Course Title:
</th>
<td class="table-row">
@Html.DropDownListFor(m => m.courseName,
@ViewBag.courseList as SelectList, " -- Select Course -- ",
new { @class = "form-control" })
</td>
</tr>
<tr>
<th class="table-row">
Start & End Date:
</th>
<td class="table-row">
<label id="#courseStartDate" class="form-control">@Model.courseStartDate</label>
</td>
<td class="table-row">
<label id="#courseEndDate" class="form-control">@Model.courseEndDate</label>
</td>
</tr>
<tr>
<th class="table-row">
Project:
</th>
<td class="table-row">
<label id="#projectName" class="form-control">@Model.projectName</label>
</td>
</tr>
<tr>
<th class="table-row">
Graduated:
</th>
<td class="table-row">
<label id="#graduated">@Model.graduated</label>
</td>
</tr>
И метод управления:
[HttpGet]
public JsonResult FillCourseInfo(int StudentID, int CourseID)
{
var ret = (from e in db.Enrollments
join c in db.Courses on e.CourseID equals c.CourseID
where e.StudentID == StudentID && e.CourseID == CourseID
select new
{
courseStartDate = c.CourseStartDate,
courseEndDate = c.CourseEndDate,
projectName = e.Project.ProjectTitle,
graduated = e.Graduated
}).ToList()
.Select(a => new StudentCourseDetails() {
courseStartDate = a.courseStartDate.ToString("MMM d, yyyy"),
courseEndDate = a.courseEndDate.ToString("MMM d, yyyy"),
projectName = a.projectName,
graduated = a.graduated.Value.ToString()
}).FirstOrDefault();
string sd = ret.courseStartDate;
string ed = ret.courseEndDate;
string pn = ret.projectName;
string g = ret.graduated;
return Json(ret, JsonRequestBehavior.AllowGet);
}
На данный момент браузер не получая удар или мой метод просто не вызван.
Пара быстрых вопросов - Что такое 'url' вынесенное в JQuery? вы можете вставить это? Также установите «contentType:» application/json'' и попробуйте. HAndle error и посмотреть, какая у вас ошибка. – ramiramilu
Если ваш код списка выбран правильно, вам нужно использовать тот же случай в вашем селекторе JQuery '$ ('# courseName'). On ('change', function() {' – JamieD77
Если вы буквально имеете в виду просто перейти от '$ ('#CourseName') 'to' $ ('# courseName') ', то это не работает –