1

我在我的应用程序中使用“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!"
        });
    }

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

谢谢。

4

1 回答 1

1

删除 get_response().get_object() 的东西。

仅使用上下文。成功

于 2012-02-07T18:06:13.950 回答