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

时间:2009-04-01 18:19:25

标签: ajax asp.net-mvc forms

我有一个包含多个输入的页面 - 我正在使用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);

   }

这样做 - 数据提交给我的控制器并保存。

但是,每次发生这种情况时,我的页面都会被空白页面替换。如果我从我的Action中显式返回一个View,则会显示该视图。但我希望它能够提交表格,让我现有的页面按原样保留。

2 个答案:

答案 0 :(得分:5)

我没有在我的页面中包含MVC Ajax javascript文件。添加这些包括解决问题。

答案 1 :(得分:1)

您需要指定要更新的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" />
<% } %>