Ajax.BeginForm 不插入局部视图

Ajax.BeginForm does not insert partial view

运行 ASP.NET MVC 2015 与 C#。 由于 @using (Ajax.BeginForm(...) 而尝试添加部分视图 它所做的只是打开一个新页面,其中包含我的部分视图。我在 Whosebug 中找到了一些答案,但 none 对我有用,除非我遗漏了什么。

场景: index page here 输入 A、B 或 C,部分视图应位于当前页面下方

new page unexpected here 但它确实会打开一个新页面

控制器:

public class TestController : Controller
{
    public ActionResult Index()
    {
        return View();
    }

    [ChildActionOnly]
    public ActionResult TestPartial()
    {
        ChoiceViewModel vm = new ChoiceViewModel();
        return View(vm);
    }

    [HttpPost]
    public ActionResult SelectChoice(ChoiceViewModel vm)
    {
        ModelState.Clear();
        if (vm.MyChoice == "A")
            return PartialView("APartial");

        if (vm.MyChoice == "B")
            return PartialView("BPartial");

        if (vm.MyChoice == "C")
            return PartialView("CPartial");

        return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
    }
}

Index.cshtml:

<h2>Index</h2>
<div>
   @Html.Partial("TestPartial")
</div>
<br/>
<div id="GoesHere">
</div>

TestPartial.cshtml:

@model TestPartial.ViewModels.ChoiceViewModel

@using (Ajax.BeginForm("SelectChoice", new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "GoesHere", InsertionMode = InsertionMode.Replace }))
{
   <div class="form-group">
       <p>Give your choice please: A,B or C</p>
       @Html.TextBoxFor(x => x.MyChoice, new { @class = "form-control" })
   </div>
   <div class="form-group">
       <input type="submit" class="btn btn-primary" value="Select">
   </div>
}

APartial.cshtml(还有 B 和 C...)

<p>This is A choice</p>

备注:

你能告诉我我错过了什么或做错了什么吗? 谢谢

答案是我的 cshtml 中缺少 unobtrusive-ajax 包含行:

<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>