【问题标题】:MVC 3 Partial View not workingMVC 3 部分视图不起作用
【发布时间】:2011-06-23 00:39:37
【问题描述】:

它不是在页面上渲染部分视图,而是在新页面上加载。这是我的代码:

控制器:

    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>

视图 - (_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 个结果和一个查看选项更多结果...

【问题讨论】:

  • 你能发布你的_Layout视图吗?
  • 我现在修改了上面的代码

标签: asp.net-mvc-3 razor


【解决方案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 兼容。

【讨论】:

  • 明白了! jquery 版本是罪魁祸首... :)
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-08
      • 1970-01-01
      • 1970-01-01
      • 2011-08-03
      • 1970-01-01
      • 2011-06-29
      • 1970-01-01
      相关资源
      最近更新 更多