gpt4 book ai didi

asp.net-mvc - 编辑器模板中的 Html.DropDownListFor 未设置选定值

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

我在编辑器模板中有一个 Html.DropDownListFor,它确实设置了一个选定的值。
如果我用部分 View 替换编辑器模板(将编辑器模板中的 HTML 复制粘贴到部分 View ),它就可以工作。

示例代码

模型:

public class MainItemViewModel
{
public int MainItemId { get; set; }
public ItemViewModel ItemViewModel { get; set; }
}

public class ItemViewModel
{
public int ItemId { get; set; }
public string Text { get; set; }
public IEnumerable<SelectListItem> ItemSelectList { get; set; }
}

Controller :
public class DropDownController : Controller
{
//
// GET: /DropDown/

public ActionResult Index()
{
var mainItemViewmodel = new MainItemViewModel();
mainItemViewmodel.MainItemId = 2;
mainItemViewmodel.ItemViewModel = new ItemViewModel();
mainItemViewmodel.ItemViewModel.ItemId = 2;
mainItemViewmodel.ItemViewModel.Text = "bla5";
List<SelectListItem> someItems = new List<SelectListItem>(){new SelectListItem(){Value = "1",Text = "Test1"},new SelectListItem(){Value = "2",Text = "Test2"}};
mainItemViewmodel.ItemViewModel.ItemSelectList = someItems;
return View(mainItemViewmodel);
}

[HttpPost]
public ActionResult Index(MainItemViewModel mainItemViewModel)
{
return RedirectToAction("Index");
}

}

下拉\索引.chtml
@model MainItemViewModel


@using (Html.BeginForm())
{
<br/>
@Html.TextBoxFor(model => model.MainItemId)
<br/>
@Html.EditorFor(model => model.ItemViewModel)

<input name="submit" type="submit" value="submit"/>
}

DropDown\EditorTemplates\ItemViewModel.chtml
   @model ItemViewModel
@{
@Html.DropDownListFor(model => model.ItemId, Model.ItemSelectList, "Select Item");
<br/>

@Html.TextBoxFor(model => model.Text);
}

DropDownListFor(model => model.ItemId, Model.ItemSelectList, "Select Item");不选择2.我以为实际上应该是 自动选择 为你

我一直在做同样的事情 除了 对于我的所有下拉列表,在另一个 View 模型中使用另一个 View 模型,它运行良好。

编辑器模板和下拉列表是否有问题,我查看了此问题的大多数答案,但没有看到任何有效的结论性答案
我看过这些解决方案

Problem binding selected value to DropDownListFor inside Editor Template

DropDownListFor - does not select “Selected” value

最佳答案

我想你有一个名为 ItemId 的属性在您的 ItemViewModel
然后确保在将 ViewModel 发送到 View 之前在 Controller 中设置它的值:

public ActionResult Edit()
{
var viewModel = new MainViewModel
{
ItemViewModel = new ItemViewModel{ ItemId = 7 }
};
return View(viewModel);
}

如果您想要更多选择,请查看 my answer here

关于asp.net-mvc - 编辑器模板中的 Html.DropDownListFor 未设置选定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11082771/

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