Ajax.actionlink对象路由值返回null

时间:2014-10-13 20:51:47

标签: c# asp.net-mvc asp.net-ajax

我有一个观点:

@model X.Models.Employee

@Ajax.ActionLink(Model.LastName[lastNameCount - 1].Value1, // <-- Text to display
   "Stuff", // <-- Action Method Name
   new
    {
     //LINE CAUSING ISSUE
      employee = Model
    },
   new AjaxOptions
    {
      bla
    },
   new
    {
     @id = "opener"
    })

我的控制器操作方法如下所示

ActionResult Stuff(Employee employee) {
 //stuff
}

为什么我的员工返回null?我不能将模型分配给对象路由值吗?

我已经尝试Model.property并且操作方法接受与之关联的类型并且它可以正常工作,但不仅仅是模型

1 个答案:

答案 0 :(得分:1)

您使用了错误的重载。 Employee是一个复杂的对象,所以替换第三个参数

Ajax.ActionLink(...
  Stuff",
  new
  {
    employee = Model
  },
  new AjaxOptions
  ...

Ajax.ActionLink(...
  Stuff",
  Model,
  new AjaxOptions
  ...

但是Model.LastName[lastNameCount - 1].Value1建议属性LastName是一个无法工作的集合(无法为集合创建路由参数,如果你检查html,你会看到像...LastName=System.Collections.Generic.List...)这样的东西。在这种情况下您只需传递员工的身份证件

即可
Ajax.ActionLink(...
  "Stuff",
  new { ID = Model.ID },
  new AjaxOptions
  ....

public ActionResult Stuff(int ID) {