gpt4 book ai didi

asp.net-mvc - 在 MVC 的局部 View 中创建 DropDownListFor

转载 作者:行者123 更新时间:2023-12-01 07:43:08 25 4
gpt4 key购买 nike

我创建了一个显示下拉列表的局部 View
html.DropDownListFor(m => m.SelectOption, Model.SelectOption)
我收到 Object not reference to an instance 的错误....

如果我将上面的代码放入我的 View (aspx)中,它可以正常工作。但在部分 View 中,我得到了错误。

我的局部 View 中的文本框控件使用相同的模型可以正常工作。我就是无法绕过 DropDownList。

最佳答案

您实际上还没有展示如何调用局部 View 以及您的 Controller 操作是否实际上已将模型传递给该 View 。

确保您的 Controller 已正确初始化模型。因此,如果我们假设您有以下模型:

public class MyViewModel
{
public string SelectedOption { get; set; }
public IEnumerable<SelectListItem> SelectOptions { get; set; }
}

以及以下 Controller 操作:
public ActionResult Foo()
{
var model = new MyViewModel();
model.SelectOptions = new[]
{
new SelectListItem { Value = "1", Text = "item 1" },
new SelectListItem { Value = "2", Text = "item 2" },
new SelectListItem { Value = "3", Text = "item 3" },
};
return View(model);
}

十你可以有一个相应的 View ,它将调用一个部分:
@model MyViewModel
@Html.Partial("_MyPartial", Model)

_MyPartial.cshtml :
@model MyViewModel
@Html.DropDownListFor(x => x.SelectedOption, Model.SelectOptionOptions)

请注意,您需要 View 模型上的 2 个属性来创建一个下拉列表 => 一个标量属性 ( SelectedOption ),该属性将用于绑定(bind)所选值和一个包含您想要的值列表的集合属性在下拉列表中显示 ( SelectOptionOptions)。

在您的代码中,您对两者都使用相同的属性,这是错误的:
@Html.DropDownListFor(m => m.SelectOption, Model.SelectOption)

关于asp.net-mvc - 在 MVC 的局部 View 中创建 DropDownListFor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8965352/

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