代码之家  ›  专栏  ›  技术社区  ›  Jason

ASP.NET MVC使用Ajax.BeginForm发布返回空白视图

  •  1
  • Jason  · 技术社区  · 17 年前

    我有一个包含多个输入的页面——我正在使用Ajax.BeginForm为每一组输入构建一个表单。

    <% using (Ajax.BeginForm(new AjaxOptions() { InsertionMode = InsertionMode.InsertAfter, HttpMethod = "POST" }))
       { %>
         <input class="smallInput" type="text" name="duration"/>
         <input type="submit" value="Add" />
    <% } %>
    

    控制器看起来像这样

       [AcceptVerbs("POST")]
       public ActionResult AddExercise(FormCollection form)
       {
    
           // some save logic...
    
           return Content(string.Empty);
    
       }
    

    这是有效的-数据被提交到我的控制器并被保存。

    然而,每次发生这种情况,我的页面都会被一个空白页面所取代。如果我显式地从我的操作返回一个视图,则会显示该视图。但是我想让它提交表单,让我现有的页面保持原样。

    2 回复  |  直到 14 年前
        1
  •  5
  •   Jason    17 年前

    我的页面中没有包含MVC Ajax javascript文件。添加这些包括修复了问题。

        2
  •  1
  •   Darin Dimitrov    17 年前

    您需要指定要更新的DOM元素的id:

    <% using (Ajax.BeginForm(new AjaxOptions() { 
        UpdateTargetId = "someID", 
        InsertionMode = InsertionMode.InsertAfter, 
        HttpMethod = "POST" }))
    { %>
        <input class="smallInput" type="text" name="duration"/>
        <input type="submit" value="Add" />
    <% } %>