Ajax.BeginForm重定向操作页面(MVC 4)

时间:2012-02-07 14:19:07

标签: asp.net-mvc ajax.beginform

我在我的应用程序中使用'Ajax.BeginForm',但由于某种原因,我的表单使用正确的json数据重定向到{controller} / {action}而不是start {OnComplete =“Add_OnComplete”}:

查看:

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

    @using (Ajax.BeginForm("Create", new AjaxOptions { OnComplete = "Add_OnComplete"}))
    {
     <fieldset>
        <legend>Add</legend>

        <div class="editor-label">
            @Html.LabelFor(model => model.FullName)
        </div>
        <div class="editor-field">
            @Html.TextBoxFor(model => model.FullName)
            @Html.ValidationMessageFor(model => model.FullName)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.Email)
        </div>
        <div class="editor-field">
            @Html.TextBoxFor(model => model.Email)
            @Html.ValidationMessageFor(model => model.Email)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.PhoneNumber)
        </div>
        <div class="editor-field">
            @Html.TextBoxFor(model => model.PhoneNumber)
            @Html.ValidationMessageFor(model => model.PhoneNumber)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.Status)
        </div>
        <div class="editor-field">
            @Html.TextBoxFor(model => model.Status)
            @Html.ValidationMessageFor(model => model.Status)
        </div>

        <p>
            <input type="submit" value="Create" />
        </p>
    </fieldset>
} 


     <script type="text/javascript">
         function Add_OnComplete(context) {

             var JsonAdd = context.get_response().get_object();

             if (JsonAdd.Success) {
                //TODO
             }

         }
    </script>

控制器

 public PartialViewResult Create()
    {
        return PartialView();
    }

     [HttpPost]
    public JsonResult Create(Subscribe model)
    {
        if (ModelState.IsValid)
        {

             _entity.CreateSubscribe(model, SubscribeStatus.Customer.GetHashCode());
             var   message = new Message(MailSubject, MailBody, model.Email);

            message.Send();
        }

        return Json(new
        {
            Success = true,
            Message = "The person has been added!"
        });
    }

我做错了什么?我错过了什么?

感谢。

1 个答案:

答案 0 :(得分:1)

删除get_response()。get_object()stuff。

仅使用context.Success