1

アプリケーションで 'Ajax.BeginForm' を使用していますが、何らかの理由でフォームが開始 {OnComplete = "Add_OnComplete"} ではなく、適切な json データを使用して {controller}/{action} にリダイレクトされます。

意見:

 <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 に答える