MVC 3部分视图不起作用

时间:2011-06-22 11:47:55

标签: asp.net-mvc-3 razor

它不会在页面上重新显示部分视图,而是加载到新页面上。这是我的代码:

控制器:

    public ViewResult Index()
    {
        ViewBag.Batch = 0;
        return View();            
    }

    public PartialViewResult ViewMore(int batch)
    {
        ViewBag.Batch = batch;
        var artist = db.Artists.ToList().OrderBy(x => x.Name).Skip(10 * batch).Take(10);
        return PartialView("_ViewMoreArtist", artist);
    }

查看(索引)

@Ajax.ActionLink("View More...",
    "ViewMore", new { batch = ViewBag.Batch + 1}, new AjaxOptions
    {
         UpdateTargetId = "viewMore",
         InsertionMode = InsertionMode.InsertAfter,
         HttpMethod = "GET"
         //,LoadingElementId = "progress"                     
    })

<div id="viewMore"></div>

VIEWS - (_ViewMoreArtist)    @model IEnumerable

@foreach (var artist in Model)
{
    @Html.ActionLink(artist.Name, "Browse", new { id = artist.ArtistId })
    <br />
}

VIEWS - (_Layout)

<!DOCTYPE html> <html> <head>
<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
<script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")"  type="text/javascript">/script>      
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>  </head> <body>

<div id="main">
    @RenderBody()
</div>
 </body> </html>

注意:我已经在_Layout上添加了jquery.unobtrusive-ajax.js ...我在这里尝试做的是使用示例MVCMusicStore项目,我添加了一个页面来查看艺术家的10个结果和一个查看选项更多结果......

3 个答案:

答案 0 :(得分:1)

你有_ViewMoreArtist.cshtml页吗?在上面的代码中,我无法看到它。

答案 1 :(得分:1)

要验证的事项:

  • 文件jquery-1.4.4.min.js存在于Scripts文件夹
  • 文件jquery.unobtrusive-ajax.js存在于Scripts文件夹中。
  • 您的浏览器调试控制台中没有任何javascript错误(建议使用FireBug)
  • 您在web.config中启用了不显眼的javascript ajax:

    <appSettings>
        ...
        <add key="UnobtrusiveJavaScriptEnabled" value="true"/>
    </appSettings>
    

要尝试的事情:

  • 使用更新版本的jquery(至少1.5),我不确定jquery.unobtrusive-ajax.js是否与jQuery 1.4.4兼容。

答案 2 :(得分:0)

这是一个很好的博客,有一个解决方案

大多数javascript文件都已过时。

http://weblogs.asp.net/owscott/archive/2010/11/17/mvc-3-ajax-redirecting-instead-of-updating-div.aspx?CommentPosted=true#commentmessage