2012-05-18 118 views
0

我有一個簡單的MVC視圖下面的代碼:MVC與Ajax調用 - 不及格對象控制器的方法

<div id="CarText"><%=Model.Cars[10].Name %></div> 
<div id="SelectedCar">no car selected</div> 
<%=Ajax.ActionLink("ajax test","TestMethod",new {carObj = Model.Cars[10]},new AjaxOptions {UpdateTargetId = "SelectedCar"})%> 

然後在我的控制,我有以下幾點:

public ActionResult TestMethod(Car carObj) 
{ 
    return PartialView("SelectedCar", carObj); 
} 

當我運行這個頁面,它就像我預期的那樣呈現(例如,第11輛車的名字顯示在第一個div中)。 然後,當我點擊鏈接時,控制器中的代碼被調用,但是「carObj」參數始終爲空

我已經閱讀了一些公平的網頁和博客,並且我沒有看到我做錯了什麼......因此這個問題。

答案一如既往,不勝感激:)

回答

1

因此,原來你無法通過一個ActionLink的傳遞對象... 我想這是有道理的,當你想想真的。

浩哼..想我將不得不增加一個ID參數只是這樣我就可以通過Ajax引用它:/

1

我同意sk93
雖然我還沒有使用asjax.actionlink方法很多(一個jquery的傢伙)。
我可以在您的動作鏈接方法中指出您的解決方案 存在一個問題{carObj = SOME_CAR_OBJ}這意味着您發送的是具有名爲carObjsome value的屬性的對象。
什麼,而不是你應該是一個JSON對象

{ 
//all the car propertiese 
name = cars[10].name, 
id = cars[10].id 
//etc etc 
} 

這種方式有可能,你將能夠在carObj發送回服務器

相關問題