gpt4 book ai didi

asp.net-mvc - ASP.Net Html.DropDownList 未选择所选元素

转载 作者:行者123 更新时间:2023-12-03 21:59:08 24 4
gpt4 key购买 nike

我有一个使用 ASP.Net MVC Beta 5 的站点,我刚刚将它升级到 ASP.Net MVC 1.0。我在处理下拉列表中的选定项目时遇到问题。

关注者有一个类似的问题( Html.DropDownList in ASP.NET MVC RC (refresh) not pre-selecting item )但我没有答案(除了它可能是一个错误)

我的 Controller 方法如下所示:

[AcceptVerbs(HttpVerbs.Get)]
public ActionResult View(Guid id)
{
IntegrationLogic logic = new IntegrationLogic(new IntegrationLinq());
CompanyLogic companyLogic = new CompanyLogic(new CompanyLinq());
IntegrationContainer container = new IntegrationContainer();

container.Sources = logic.GetImportSource(id);
container.Companies = companyLogic.GetCompanies(); // Returns a IList<company>
container.SourceActions = logic.GetAllSourceActions(); // Returns an IList<SourceAction>
container.SinkActions = logic.GetAllSinkActions();
container.SuccessActions = logic.GetAllSuccessActions();
container.FailureActions = logic.GetAllFailureActions();
container.Actions = logic.GetAllActions();
container.Watchers = logic.GetAllWatcherActions();
container.ChainActions = logic.GetAllChainActions();

return View("View", container);
}

该 View 是针对模型的强类型,如下所示
public partial class View : ViewPage<IntegrationContainer> {}

View 模板中的问题区域是:
  <label for="Companies">Company: </label><%=Html.DropDownList("Companies",
new SelectList(ViewData.Model.Companies, "id", "name", item.CompanyID))%>

我正在创建一个下拉列表,所选项目从未真正被选中 - 这就是问题所在。 "item.CompanyID"是一个 Guid,"id"是一个 Guid,"name"是公司对象上的字符串,该公司对象在 ViewData.Model.Companies 实例中保存的 IList 中提供。

这实际上是一个错误吗? - 我发现很难理解为什么这仍然存在于 ASP.Net MVC 中......如果这是我所做的,我会非常高兴。

无论如何,建议的解决方法是什么?

谢谢

最佳答案

事实证明,如果通过 Html.DropDownList 的控件名称与集合对象的名称相同,则会导致 ASP.Net MVC 出现问题。

因此,如果我更改以下代码:

<label for="Companies">Company: </label><%=Html.DropDownList("Companies",
new SelectList(ViewData.Model.Companies, "id", "name", item.CompanyID))%>

到:
<label for="Companies">Company: </label><%=Html.DropDownList("company",
new SelectList(ViewData.Model.Companies, "id", "name", item.CompanyID))%>

现在一切正常。这是因为模型上的集合名称是 Model.Companies.... 疯子...还要注意,将控件名称的大小写从“公司”更改为“公司”也不起作用(这使得感觉我想)。

我可以更改模型,但由于其中大部分是使用 Linq-to-SQL 构建的,我认为更改 Html 元素的名称更容易。

关于asp.net-mvc - ASP.Net Html.DropDownList 未选择所选元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1206391/

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