下拉列表值更改时部分ASP.NET MVC呈现

时间:2018-09-30 18:09:08

标签: c# jquery asp.net asp.net-mvc asp.net-mvc-4

当用户从下拉列表中选择一个值时,我试图动态呈现局部视图。我已经走了很远,但无法弄清楚这最后一点。

这是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,当用户从下拉列表中选择MCQ时,我在其中调用了一个局部视图,即View / MCQ / AddMCQ.cshtml。 。局部视图(AddMCQ)可以很好地加载,并显示一个窗体以使用“创建”按钮添加MCQ,但是当我单击“创建”按钮时,它没有调用MCQController.cs / AddMCQ函数,而是调用了QuizController.cs / MyAction函数。 。我可以添加AddMCQ.cshtml的代码,但是我觉得这是不必要的,因为它可以正常工作。

0 个答案:

没有答案