gpt4 book ai didi

c# - 如何将整个模型从我的索引 View 传递到一个完全不同的 Controller ?

转载 作者:太空宇宙 更新时间:2023-11-03 13:49:02 24 4
gpt4 key购买 nike

这是我的索引 View (Index.cshtml) 的相关部分:

    @foreach (var item in Model) {
<li>
@Html.ActionLink(item.name, "Index", "Filler", new { cap = item }, null)
</li>
}

如您所见,ActionLink 与 Filler Controller 上的 Index 操作相关联,并传入整个项目(模型)-“项目”的类型为“胶囊”。

现在,在我的 Filler Controller 上,在 Index 操作中:

        public ActionResult Index(capsule cap)
{
var fillers = db.fillers.ToList();
return View(fillers);
}

Entity Framework 自动生成的胶囊类是:

namespace CapWorx.Models
{
using System;
using System.Collections.Generic;

public partial class capsule
{
public capsule()
{
this.fillers = new HashSet<filler>();
}

public int pk { get; set; }
public string name { get; set; }

public virtual ICollection<filler> fillers { get; set; }
}
}

问题是在上述 Index 操作中“cap”为 NULL。但是,如果我将类型更改为“对象”而不是“胶囊”,我确实会得到一些奇怪的非空数据,但我无法将对象转换为“胶囊”。有谁知道为什么这是 NULL?

谢谢,

迈克

最佳答案

您通常只需将 id 传递给操作即可。例如,您能否重构您的代码,使其可以接收 capsuleId,从 db 获取 capsule 并执行任何需要的处理。将整个对象添加到 ActionLink 中的路由值没有任何意义。查看正在生成的链接。它可能只是像 ...?cap=Namespace.Capsule 这样的对象,因为对象将被 ToStringed

关于c# - 如何将整个模型从我的索引 View 传递到一个完全不同的 Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14297815/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com