0

我在一个简单的 MVC 视图中有以下代码:

<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”参数始终为空。

我现在已经阅读了相当多的页面和博客,但我没有看到我做错了什么......因此这个问题。

答案一如既往,非常感谢:)

4

2 回答 2

1

我同意 sk93
,虽然我没有使用 asjax.actionlink 方法太多(一个 jquery 人)。
我可以在您正在使用的操作链接方法中指出您的解决方案的一个问题,{carObj = SOME_CAR_OBJ}这意味着您发送的是一个具有名为carObjand的属性的对象some value
相反,您应该拥有的是 JSON 对象

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

这样您就可以将 carObj 发送回服务器

于 2012-05-18T10:57:04.200 回答
1

所以事实证明你不能通过 ActionLink 传递一个对象......我想当你真正考虑它时这是有道理的。

哼哼..我想我将不得不简单地添加一个 ID 参数,以便我可以通过 Ajax 引用它:/

于 2012-05-18T10:48:48.250 回答