2011-06-22 48 views
0

不是在頁面上顯示局部視圖,而是在新頁面上加載。這裏是我的代碼:MVC 3部分視圖不能正常工作

控制器:

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); 
    } 

VIEW(指數)

@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 /> 
} 

視圖 - (_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個結果的藝術家以及一個選項查看更多結果...

+0

你可以發佈你的_Layout視圖嗎? – gram

+0

我現在修改了上面的代碼 – FlatCoder

回答

1

需要確認的東西:

  • 文件jquery-1.4.4.min.js存在於Scripts文件夾
  • 文件jquery.unobtrusive-ajax.js存在於Scripts文件夾中。
  • 您不必在瀏覽器的調試控制檯任何JavaScript錯誤(推薦螢火蟲)
  • 你有不顯眼的在你的web.config的JavaScript支持AJAX:

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

旅遊嘗試:

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

難題! jQuery版本是罪魁禍首...... :) – FlatCoder

1

您是否擁有_ViewMoreArtist.cshtml頁面?在上面的代碼中,我無法看到它。

+0

我現在修改了上面的代碼 – FlatCoder

相關問題