2009-05-02 92 views
2

我曾经遇到过这个问题,但对于我的生活还记得如何修复它 或我在哪里搜索了它。PartialView渲染新页面而不是div

我从一个动作传回的局部视图

 return PartialView("CommentsListControl", recipe.Comments); 

但这加载一个新网页,并没有进入我的div WHY ?????????

<table width="100%"> 
    <tr><td> 
     <div id="divComments"> 
      <% using (Ajax.BeginForm("CreateComment", new AjaxOptions { UpdateTargetId = "divCommentsList", InsertionMode = InsertionMode.Replace })) 
       { %> 
      <textarea id="comments" name="comments" rows="3" cols="60"></textarea> 
      <table width="100%"><tr><td align="right"> 
       <a href="#" id="savecomment">Save Comment</a> 
       <%= Html.Hidden("recipeid", Model.RecipeID) %> 
      </td></tr> 
      </table> 
      <% } %> 
     </div> 
    </td></tr> 
    <tr><td> 
     <div id="divCommentsList"> 
      <% Html.RenderPartial("CommentsListControl", Model.Comments); %> 
     </div> 
    </td></tr> 
</table> 

回答

1

您显示的示例在表单上没有提交按钮。在WebForms中,您可以使用“asp:Hyperlink”控件生成一个看起来喜欢它的链接,但这是因为WebForms正在为您实现JavaScript。在MVC中,你必须自己做。尝试交换您的“保存注释”链接提交按钮:

<input type="submit" value="Save Comment" /> 

然后使用CSS风格的按钮到你的心中的内容。

+0

表单正在使用JQuery submited。 – Malcolm 2009-05-02 07:30:18