繁体   English   中英

Ajax.actionlink对象路由值返回null

[英]Ajax.actionlink object route values returning null

我有一个观点:

@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 ,并且action方法接受与之关联的类型并且可以工作,但不仅限于Model

您使用了错误的重载。 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...) 在这种情况下,您只需要传递员工的ID

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

public ActionResult Stuff(int ID) {

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM