我试图用一个下拉的更改事件调用在我的控制器一个ActionResult以填充另一个下拉。
下面是我试过了jQuery:
$(function () {
$('#CertificationId').change(function () {
var data = {
certificationId: $('#CertificationId').val()
};
var certificationId = $('#CertificationId').val();
// $.post('@Url.Action("AjaxGetCourseOptions", "WorkerCertifications")', {certificationId : certificationId}, $(this).parents('form:first').serialize(), function (data) {
// //$('#form').children().remove().append(data);
// }, 'html');
// var url = '@Url.Action("AjaxGetCourseOptions", "WorkerCertifications")';
// var certificationId = $('#CertificationId').val();
// $.post(url, { certificationId: certificationId }, function (result) {
// alert('success');
// });
// $.getJSON('/WorkerCertifications/AjaxGetCourseOptions/SysAdmin/Worker/Certifications/14843/', data, function (result) {
// alert(result.message);
// });
$.getJSON('@Url.Action("AjaxGetCourseOptions", "WorkerCertifications")', data, function (result) {
alert(result.message);
});
// $.getJSON(this.href, data, function (result) {
// alert(result.message);
// });
return false;
});
});
下面是从控制器的代码:
public ActionResult AjaxGetCourseOptions( string certificationId )
{
var viewData = new WorkerCertificationViewModel
{
//CourseOptions = ScheduledCourse.GetActive().ToSelectList(x => x.Id, x => x.Id),
CourseOptions = ScheduledCourse.GetAvailableCourses(Convert.ToInt64(certificationId)).ToSelectList(x => x.Id, x => x.Id)
};
viewModel.CourseOptions = viewData.CourseOptions;
return Json( new {message = "Test"},
JsonRequestBehavior.AllowGet
);
}
我似乎无法得到jQuery来调用控制器中的代码。 我怎样才能做到这一点?
更新
我仍然有得到这个工作的问题。 这是页面的下拉菜单中更改事件触发之前的URL http://mylocalhost.com/camms/WorkerCertifications/Insert/SysAdmin/Worker/Certifications/14843
变化事件触发后,我有我想要发布到一个硬编码(现在)的URL,但它变得追加到当前URL。 任何想法如何解决这一问题? 这是它试图张贴到网址: http://mylocalhost.com/camms/WorkerCertifications/Insert/SysAdmin/Worker/Certifications/camms/WorkerCertifications/AjaxGetCourseOptions/SysAdmin/Worker/Certifications/14843/?certificationId=10916
该网址应该是这样的: http://mylocalhost.com/camms/WorkerCertifications/AjaxGetCourseOptions/SysAdmin/Worker/Certifications/14843/?certificationId=10916
我不得不删除本地主机和端口,以保存该更新。