Asp.net MVC 3 RC2中的PartialViews

时间:2010-12-23 01:42:04

标签: jquery asp.net-mvc-3

我在使用MVC 3时遇到了麻烦,我无法正常显示部分视图。

这是我的困境:

在我的主页/索引视图中,我有一个动作链接到我的控制器/动作,发布/创建:

<p>
    @Html.ActionLink("Create Post", "Create", "Post")
</p>
<div id="PostCreation">
</div>  

我的创建视图是一个partialView,其中包含标题,内容等的基本形式:

@using (Html.BeginForm())
{
    <div>
        <fieldset>
            <legend>Post Creation</legend>

            <div class="editor-label">
                @Html.LabelFor(m => m.PostTitle)
            </div>
            <div class="editor-field">
                @Html.TextAreaFor(m => m.PostTitle)
            </div>
            <p>
                <input type="submit" value="Publish" />
            </p>
        </fieldset>
    </div>
}

我在_Layout.cshtml文件中添加了一些jQuery来捕获属性的点击次数:

<script type="text/javascript">
      $(document).ready(function () {
          $('a').live('click', function () {
              $.get($(this).attr('href'), function (html) {
                  $('#PostCreation').html(html);
              });
          });
      });
</script> 

然后点击应该更新Home / Index视图中的PostCreation div。

使用firebug我发现当我逐步执行jQuery时,ParialView会在Home / Index中正确呈现,但是一旦我完成了jQuery函数,它就会呈现一个只显示Post / Create表单的整个新页面。 p>

感谢任何帮助。感谢。

1 个答案:

答案 0 :(得分:1)

您需要取消jQuery中的导航。

尝试将.live()签名更改为:

          $('a').live('click', function (e) {
              e.preventDefault();
              $.get($(this).attr('href'), function (html) {
                  $('#PostCreation').html(html);
              });
          });