2012-05-18 82 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发送回服务器

相关问题