我有一个“问题”对象的控制器;如果这些问题属于“MultipleChoice”类型,那么我希望能够将“MultipleChoiceOption”对象的集合添加到问题中......到目前为止,一切都很好。
我遇到的问题是,当我编辑一个问题时,将其类型更改为 MultipleChoice,然后添加选项,必须返回编辑问题视图并提交编辑的问题,否则 Question.Type 中的更改将丢失。显然这有点烦人,所以我想做的是连接一个方法,只要下拉列表值发生更改,就会在 QuestionController 中触发相关方法。
我的编辑问题视图中有以下内容:
@Html.DropDownListFor(model => model.Type, Helper.GetSelectList(), new { id = "QuestionTypeDropDown", onchange = "OnChange();" })
<script type="text/javascript">
function OnChange(text) {
...do something here
}
}
</script>
我的问题控制器中的这个方法:
[HttpPost]
public ActionResult QuestionTypeEdited(Question question)
{
if (ModelState.IsValid)
{
SaveQuestion(question, false);
return RedirectToAction("Edit", "Question", new { id = question.OwningPulseId });
}
return View(question);
}
但我不知道如何将它们连接起来。我尝试了一种使用我在网上找到的 Ajax 的方法,但这只是阻止了 js 的触发(也许我没有 Ajax?抱歉,我对 Ajax 一无所知,所以这可能是一个愚蠢的说法!)。是否可以使用“简单”Javascript?
如果我需要明确指定控制器,请务必提及如果您知道 :-)
干杯