Razor Ajax.BeginForm()未通过Ajax提交

Razor Ajax.BeginForm()未通过Ajax提交,razor,asp.net-ajax,asp.net-mvc-4,Razor,Asp.net Ajax,Asp.net Mvc 4,我已经为此挣扎了好几天了。我有一个表单,它是通过Ajax加载的部分视图,但它不是通过Ajax提交的,即使它使用Ajax.BeginForm() 控制器: <HttpGet()> _ Public Function PersonalDetailsEdit(PersonalInfo As DetailsViewModel.PersonalDetails) As PartialViewResult Return PartialView(PersonalInfo)

我已经为此挣扎了好几天了。我有一个表单,它是通过Ajax加载的部分视图,但它不是通过Ajax提交的,即使它使用Ajax.BeginForm()

控制器:

<HttpGet()> _
    Public Function PersonalDetailsEdit(PersonalInfo As DetailsViewModel.PersonalDetails) As PartialViewResult
        Return PartialView(PersonalInfo)
    End Function

    <HttpPost()> _
    <AjaxOnly()> _
    Public Function PersonalDetailsEdit(formcollection As FormCollection, model As DetailsViewModel.PersonalDetails) As PartialViewResult
        Return PartialView("PersonalDetails", model)
    End Function
_Layout.vbtml:

<!DOCTYPE html>
<html lang="eng">
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width" />
    <title>@ViewData("Title")</title>
    @Styles.Render("~/Content/css")
    @RenderSection("styles", required:=False)

    @Scripts.Render("~/bundles/modernizr")
    @Scripts.Render("~/bundles/ask")

    @RenderSection("scripts", required:=False)
</head>
<body>
    @RenderBody()
</body>
</html>

@视图数据(“标题”)
@style.Render(“~/Content/css”)
@RenderSection(“样式”,必填项:=False)
@Scripts.Render(“~/bundles/modernizer”)
@Scripts.Render(“~/bundles/ask”)
@RenderSection(“脚本”,必需:=False)
@RenderBody()
在经历了很多挫折后放弃了,并决定在客户端使用MVVM执行JQuery+淘汰路线,如下所示:

<script type="text/javascript">
var data = @Html.Raw(Json.Encode(Model)) ;
var PersonalDetailsVM = ko.mapping.fromJS(data);
ko.applyBindings(PersonalDetailsVM, $('section#PersonalDetails')[0]);
</script>

var data=@Html.Raw(Json.Encode(Model));
var PersonalDetailsVM=ko.mapping.fromJS(数据);
ko.applyBindings(PersonalDetailsSVM,$('section#PersonalDetails')[0]);

现在我正在努力处理JSON/MVC日期转换——我以为MVC4应该默认使用JSON.NET?如果有很多麻烦的话,我会再发一个问题。

省去你的头疼,使用jQuery。微软基本上是在他们的ASP.NETAjax上“跳槽”,现在支持jQuery


谢谢,在经历了很多挫折之后,我决定选择纯JQuery+KnockoutJS路线。
<!DOCTYPE html>
<html lang="eng">
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width" />
    <title>@ViewData("Title")</title>
    @Styles.Render("~/Content/css")
    @RenderSection("styles", required:=False)

    @Scripts.Render("~/bundles/modernizr")
    @Scripts.Render("~/bundles/ask")

    @RenderSection("scripts", required:=False)
</head>
<body>
    @RenderBody()
</body>
</html>
<script type="text/javascript">
var data = @Html.Raw(Json.Encode(Model)) ;
var PersonalDetailsVM = ko.mapping.fromJS(data);
ko.applyBindings(PersonalDetailsVM, $('section#PersonalDetails')[0]);
</script>