Я пытаюсь передать дополнительный параметр в функцию ActionResult (). У меня есть файл JavaScript, который содержит функцию AddCustomCourse ().
function AddCustomCourse() {
var formModal = new QCI.BootstrapFormModal.BootstrapFormModal(window.pageVars.AddCustomCourseUrl, {
title: "Add Custom Course",
actionButtonText: "Add Course",
beforeSubmitAction: UpdateCKEditors,
successCallback: UpdateDataTables,
});
formModal.OpenModal();
}
Я определил переменную pageVar на странице index.cs html под названием AddCutomCourseUrl, которая вызывает вспомогательный метод URL:
<script>
var pageVars = {
AddCustomCourseUrl: '@Url.Admin_CurriculumCourses_AddCustomCourse(Model.curriculumID)',
}
</script>
Вот определение вспомогательной функции:
public static string Admin_CurriculumCourses_AddCustomCourse(this UrlHelper helper, int curriculumID)
{
return helper.RouteUrl(new { area = "Admin", controller = "CurriculumCourses", action = "AddCustomCourse", curriculumID });
}
, а вот метод ActionResult:
[HttpGet, Route("AddCustomCourse")]
public ActionResult AddCustomCourse(int curriculumID)
{
var viewModel = _curriculumService.GetAddDetailsForCustomCourse(curriculumID, CurrentUser.UserID);
return this.Json(new JsonResultVM(true, this.RenderPartialViewToString("_AddCustomCourse", viewModel)), JsonRequestBehavior.AllowGet);
}
Модель, которую я передаю, содержит две переменные , curriculumID & userID. Я пытаюсь передать userID вместе с curriculumID. Я уже убедился, что обе переменные установлены; однако, когда я изменяю предыдущие функции, чтобы добавить дополнительный параметр, userID всегда равен null и currivulumID передается нормально. Вот что я сделал:
<script>
var pageVars = {
AddCustomCourseUrl: '@Url.Admin_CurriculumCourses_AddCustomCourse(Model.curriculumID, Model.userID)',
}
</script>
public static string Admin_CurriculumCourses_AddCustomCourse(this UrlHelper helper, int curriculumID, int? selectedUserID)
{
return helper.RouteUrl(new { area = "Admin", controller = "CurriculumCourses", action = "AddCustomCourse", curriculumID, selectedUserID });
}
[HttpGet, Route("AddCustomCourse")]
public ActionResult AddCustomCourse(int curriculumID, int? selectedUserID)
{
var viewModel = _curriculumService.GetAddDetailsForCustomCourse(curriculumID, selectedUserID, CurrentUser.UserID);
return this.Json(new JsonResultVM(true, this.RenderPartialViewToString("_AddCustomCourse", viewModel)), JsonRequestBehavior.AllowGet);
}
Я не уверен, что происходит.