gpt4 book ai didi

c# - .NET 显示不同的数据库变量但另存为 ID?

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

我不知道如何在标题中正确地总结我想做的事情!基本上我用 EF6 创建了一个 Controller ,客户端表的一个外键是 MJTopicsID,它链接到 MJTopics 表,一个包含 26 个主题的表。在添加和编辑 View 中,我希望 MJTopicsID 成为显示所有可用主题的下拉菜单,但是当您选择它并单击以添加或编辑条目时,它会将其作为 MJTopicsID 外键编号添加到客户端表中吗?我该怎么做才能将它应用到我的所有 View 中。

这是我在编辑 View 中创建的下拉菜单,但它只显示数字 1-26,如果我将它更改为主题变量,它不知道它,因为它显然不在开放模型中,谢谢!

<div class="form-group">
@Html.LabelFor(model => model.MJTopicsID, "MJTopicsID", htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("MJTopicsID", null, htmlAttributes: new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.MJTopicsID, "", new { @class = "text-danger" })
</div>
</div>

最佳答案

如果我理解正确,那么您希望显示一些可读值并保存一些特定于数据库的值,例如本例中的外键 ID。

在辅助方法“DropDownList”的 View 中,您可以将类型为 IEnumerable 类型的第二个参数作为您的选项列表,如下所示:

View:


@Html.DropDownList("MJTopicsID",
(List<SelectListItem>)@ViewBag.MJTopics,
htmlAttributes: new { @class = "form-control" })



Action:


public ActionResult Index()
{
ViewBag.MJTopics = new List<SelectListItem>() {
new SelectListItem(){Text = "Topic1", Value ="1" },
new SelectListItem(){Text = "Topic2", Value ="2" }
};
return View();
}

SelectListItem 有两个可以映射到模型的属性。您还可以使用您的模型,将“文本”作为要显示的值,将“值”作为要使用的值。

让“主题”成为您的主题列表模型那么你可以把它写成

 topics.Select(
x=> new SelectListItem()
{
Text = x.Id,
value =x.Desc
})

这是一种方法。

希望能解决您的问题。

关于c# - .NET 显示不同的数据库变量但另存为 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48036968/

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