Частичное рендеринг ASP.NET MVC при изменении значения выпадающего списка - PullRequest
0 голосов
/ 30 сентября 2018

Я пытаюсь визуализировать частичное представление динамически, когда пользователь выбирает значение из выпадающего списка.Я получил довольно далеко, но не могу понять этот последний бит.

Вот файл View / Quiz / AddQuestion.cshtml

@model quizAppCodeFirst.ViewModels.QuestionTypes

@using (Html.BeginForm())
{
    @Html.AntiForgeryToken()
    <div>

        Type @Html.DropDownList("QuestionTypes", ViewData["QuestionTypes"] as SelectList, new { @class = "form-control" })

        <div id="partialPlaceHolder"> </div>
    </div>
}
<script type="text/javascript" src="~/Scripts/jquery-3.3.1.min.js"></script>

<script type="Text/javascript">
 $(function(){
     $("#QuestionTypes").change(function(){
     var stateId=$(this).val();
         $("#partialPlaceHolder").load("@Url.Action("MyAction", "Quiz")/MCQ");
   });
 });
</script>

В QuizController.cs этоМетод MyAction, который отображает частичные значения

public ActionResult MyAction(string id)
{  
    Type t = Type.GetType("quizAppCodeFirst.Quiz" + id);
    return PartialView(viewName, t);
}

До сих пор мне удавалось отобразить частичное представление, но когда я нажимаю кнопку внутри частичного представления, он перезагружает метод javascript / MyAction.

Редактировать: чтобы прояснить ситуацию, у меня есть основной вид, который является View / Quiz / AddQuestions.cshtml, и внутри него я вызываю частичный вид, который является View / MCQ / AddMCQ.cshtml, когда пользователь выбирает MCQ из выпадающего списка.Частичное представление (AddMCQ) загружается отлично и отображает форму для добавления MCQ с помощью кнопки «Создать», но когда я нажимаю кнопку «Создать», вместо вызова функции MCQController.cs / AddMCQ, она вызывает функцию QuizController.cs / MyAction,Я могу добавить код для AddMCQ.cshtml, но мне кажется, что он не нужен, поскольку сам по себе работает нормально.

...