gpt4 book ai didi

c# - MVC5 详细信息/编辑/删除多键表

转载 作者:行者123 更新时间:2023-11-30 17:29:11 25 4
gpt4 key购买 nike

对 MVC5 来说还很陌生,但发展迅速。这个小问题让我很困惑,关于 Goolge 的信息似乎不多(或者我没有问 Google 正确的问题)。

我有一个表 (FILE_RCPTS_LOG)此表有多个键(2)
第一个键是字段:TRACK_NMBR (int)第二个键是字段:TRANS_DT(日期)

当我创建我的 Controller 时,默认 View 也被创建了。在大多数情况下,它们工作正常。但是,在尝试使用 Edit\Delete\Details 链接时出现 HttpNotFound 错误

@Html.ActionLink("Edit", "Edit", new { /* id=item.PrimaryKey */ }) |
@Html.ActionLink("Delete", "Delete", new { /* id=item.PrimaryKey */ }
@Html.ActionLink("Details", "Details", new {/* id=item.PrimaryKey */ })

如果我的 table 只有一把 key ,那就没问题了。但是我如何传递这两个 key 呢?

对于这样一个简单的操作,我在网上找到的几个解决方案似乎太复杂了。我想我在这里遗漏了一些明显的东西。 . .

这是我的 Controller 的代码(详细信息)

  public async Task<ActionResult> Details(int? id, DateTime id2)
{

if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
FILE_RCPTS_LOG fILE_RCPTS_LOG = await db.FILE_RCPTS_LOG.FindAsync(id);
if (fILE_RCPTS_LOG == null)
{
return HttpNotFound();
}
return View(fILE_RCPTS_LOG);
}

我尝试了几种传递多个 key 的方法,但没有任何效果。我已经阅读了一些有关使用 SPLIT 的教程,但我也无法使其正常工作。这似乎是一件简单而常见的事情,因为我认为大多数表都有多键。

是否有一种我没有看到的简单方法可以做到这一点?我觉得我想多了。

谢谢!!!

最佳答案

你可以关注这个。首先,在 ActionLink 中,将所有 2 个键值作为逗号分隔的字符串传递。例如在详细操作中:

@Html.ActionLink("Details", "Details", new {id= @item.TRACK_NMBR +','+@item.TRANS_DT});

在 Details ActionController 中,您需要将 2 个键分别解析出来。

string[] splitid = id.Split(',');
FILE_RCPTS_LOG obj = db.FILE_RCPTS_LOG.Find(Convert.ToInt32(splitid[0]),Convert.ToDateTime(splitid[1]));

或者您可以传递 2 个参数作为您的解决方案:

@Html.ActionLink("Details", "Details", new {id= @item.TRACK_NMBR, id2 =@item.TRANS_DT});

public async Task<ActionResult> Details(int? id, DateTime id2)
{
FILE_RCPTS_LOG obj = db.FILE_RCPTS_LOG.Find(id, id2);
}

记住键的顺序很重要。希望对你有帮助,我的 friend !

关于c# - MVC5 详细信息/编辑/删除多键表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51634355/

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