部分视图呈现新页面而不是div

时间:2009-05-02 05:41:00

标签: asp.net-mvc

我以前遇到过这个问题而且不能为我的生活记住如何修复它 或者我在谷歌上搜索它。

我从一个部分视图的行动中传回来

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

但这会加载一个新的网页而不是我的div为什么??????????

<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 个答案:

答案 0 :(得分:1)

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

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

然后使用CSS将按钮设置为您心中的内容。