使用Ajax.BeginForm更新表单

Update a form using Ajax.BeginForm

本文关键字:表单 更新 BeginForm Ajax 使用      更新时间:2023-09-26

我正在尝试使用Ajax.BeginForm更新应用程序中的一个表单。更新正在进行,但在执行控制器中的函数后,它将重定向到具有控制器函数名称的视图。我不希望它重定向到另一个视图,相反,我想显示一条类似成功或失败的警告消息。

<div id="target" ondrop="drop(event)" ondragover="allowDrop(event)">
   @using (Ajax.BeginForm("Insert", "User", new AjaxOptions{
       HttpMethod = "POST",
       UpdateTargetId = "target",
       OnSuccess = "success"
   }))
   {
       <ul>
       @foreach (var item2 in Model.sample)
       {
           <li draggable="true" ondragstart="drag(event)" class="Contentpropclass" value="@item2.name">
               <input type="hidden" id="ID" name="ID" value="@item2.id"/>
               <input type="hidden" value="@item2.name" name="Name" id="Name"/>
               @item2.name
               <input type="number" name="age"  value="@item2.age" placeholder="age"  />
               <input type="number" name="siblings" value="@item2.siblings" placeholder="" /> 
           </li>     
       }
       </ul>
       <br /> <br /> <br />
       <br /> <br /> <br />
       <br /> <br /> <br />
       <button type="submit" value="submit">Save</button>
    }
</div>   

您需要从控制器返回一个JSON。

c#

public ActionResult Controller1(String postdata1, object postdata2)
        {
            Boolean result = GetResultMethot(); 
            var jsonResult = Json(result, JsonRequestBehavior.AllowGet);
            return jsonResult;
        }

cshtml

   @using (Ajax.BeginForm("Insert", "User", new AjaxOptions{
           HttpMethod = "POST",
           UpdateTargetId = "target",
           OnSuccess = "AjaxResponse(data)"
       }))

JavaScript

function AjaxResponse(json) {
    if(json != null && json.length > 0 && json == "true")
    {
       alert("true");
    }
    else
    {
       alert("false");
    }   
}