2010-06-29 54 views
0

我想通過Ajax得到的東西,並把它變成AJAX使用jQuery在ASP.MVC2

我不得不從的Controler行動返回把這個成DIV?現在,我已經標準ASP.MVC查看結果...

public ActrionResult MyAction() { 
    return View(); 
} 

,並在JavaScript我有:與MyAction相關

$.get(<url to controler action>, null, function(data) { $(#result).html(data); }) 

典型的行動,重新加載頁面可以完美運行。但是當我做$ .get(...)我有整個頁面在「數據」(內容和母版頁)。我怎樣才能得到View()的一部分,沒有MsterPage?

回答

1

你可以返回部分:

public ActrionResult MyAction() 
{ 
    return PartialView(); 
} 

如果你有MyAction.ascx部分包含一些HTML片段:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %> 
<div>Hello</div> 

inject this partial using an AJAX call#result格:

$('#result').load('/home/myaction'); 
+0

+1使用部分視圖 – Matias 2010-06-29 13:29:46

0

你要使用

public ActrionResult MyAction() { 
    var stuff = new { id = 1, name = "test" }; //or whatever stuff you need in your page 
    return Json(stuff); 
} 

從您的ActionResult方法。

0

作爲json響應的替代方法,您可以返回html。所有你需要做的就是過濾並從'data'變量中獲得你想追加的html。

$.get(<url to controler action>, null, function(data) { 
       $('#result').html($(data).find('#partOfViewID').html()); 
       }); 
0

這不是jQuery/ajax的問題​​。您需要一個返回部分視圖的操作。沒有一個使用母版頁返回視圖。

您可以使用此部分:

$獲得(,空, 功能(數據){$ (#結果)。html的(數據);})

但您的操作必須具有與其關聯的局部視圖,而不是具有母版頁的常規視圖。

所以做一個新的動作。添加一個視圖,檢查部分視圖複選框。並把你想要重新加載的東西放在那個局部視圖中。