2011-04-11 77 views
1

在我的MVC 3應用程序中,我將有一個包含局部視圖的視圖。視圖本身會有一個動態生成的鏈接列表。該鏈接必須使部分視圖呈現該鏈接項目的詳細信息。ASP.NET MVC 3部分視圖從視圖中的動態列表動態呈現和鏈接

我會爲此使用Ajax嗎?如果是這樣,因爲我以前沒有使用過Ajax,有沒有在MVC 3應用程序中使用它的任何文檔?

此外,當視圖第一次加載時,局部視圖將不會被加載,或理想地顯示另一個單獨的局部視圖。任何想法都可以做到這一點?

感謝您的幫助。

回答

-2

解決這個問題,我發現是使用附帶的MVC框架3阿賈克斯傭工的最簡單的方法。 MVC 3的Ajax視頻Pluralsight在簡潔地解釋如何使用此功能的基礎知識方面做了出色的工作。

+2

-1 Ajax助手已被棄用。 – 2012-08-29 19:36:38

10

創建操作方法它返回一個PartialViewResult:

[HttpGet] 
public ActionResult DetailedLinkInfo(int someIdentifier) 
{ 
    var detailedLinkInfo = GetFromSomewhere(); 
    return PartialView(detailedLinkInfo); 
} 

然後創建一個局部視圖,強類型以detailedLinkInfo類型的(讓我們說這是一個DynamicLink

@model WebApplication.Models.DynamicLink 
@* bunch of HTML for the detailed info *@ 

然後用jQuery在客戶端。給所有的鏈接一類,以便它可以更容易掛鉤的事件:

$(function() { 
    $('a.dynamic-link').click(function() { 
     $.get('/SomeController/DetailedLinkInfo', someIdentifier: $(this).attr('id'), function(data) { 
     $('#some-div').html(data); 
     }); 
    }); 
}); 

最終結果:你點擊一個鏈接時,jQuery將執行AJAX得到你的控制器動作,然後綁定結果到div。

HTH

+0

謝謝你的迴應,但是我跟隨着MVC3 – James 2011-04-29 23:15:45

+3

@James提供的ajax幫手 - 沒有任何問題。你應該知道,雖然從MVC 3開始,AJAX助手和JS庫(MicrosoftMvcAjax.js)現在被認爲是「遺留的」。 jQuery完成了這一切 - 節省了你一個額外的JS庫。完全取決於你。 – RPM1984 2011-04-30 01:16:41