asp.net-mvc - 在下拉列表中选择默认值并传递 id MVC 下拉列表
问题描述
我使用了下拉列表的模型,
> public class Items
> {
> public int itemcategoryid { get; set; }
> public string itemcategory { get; set; }
> public int Itemsubcategoryid { get; set; }
> public string Itemsubcategoryname { get; set; }
> }
在控制器代码下方
> ItemViewModel catVM = new ItemViewModel();
> List<Items> catlist = catVM.GetCategoryInfo();
> ViewBag.categorylist = catlist;
使用下面的 HTML 代码绑定下拉列表后,下拉列表已填充并选择默认名称作为 itemcategory 但未传递 itemcategory 的 id 仅传递 itemcategory 名称用于 POST。
@Html.DropDownListFor(model => model.itemcategory, new SelectList(ViewBag.categorylist, "itemcategory", "itemcategory", Model.itemcategory))
如果我在 HTML 代码下方使用其传递值但未选择默认名称
@Html.DropDownListFor(model => model.itemcategory, new SelectList(ViewBag.categorylist, "itemcategoryid", "itemcategory", Model.itemcategory))
使用下面的代码检索数据
using (OracleCommand cmd = new OracleCommand("PS_Category", conn)) { cmd.CommandType = System.Data.CommandType.StoredProcedure; conn.Open(); OracleDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { Items listitems = new Items(); ; listitems.itemcategoryid = Convert.ToInt32(reader["CATID"]); listitems.itemcategory = reader["CATNAME"].ToString(); items.Add(listitems); } }
实际上我想选择默认名称并传递他们的 id 怎么可能呢?
解决方案
对于您使用它的多个下拉值。对于插入值
ViewBag.DocumentId = new SelectList(_documentCategoryService.GetAll().OrderBy(a => a.Name), "Id", "Name");
对于编辑,您可以使用它。
ViewBag.DocumentId = new MultiSelectList(_documentCategoryService.GetAll(), "Id", "Name", _documentCategoryService.GetAllByExportId((int)id).Select(a => a.DocumentCategoryId).ToArray());
查看部分:
<div class="row-fluid">
<div class="span12">
<div class="control-group">
<label class="control-label">Documents Require</label>
<div class="controls controls-row">
@Html.DropDownList("DocumentId", null, htmlAttributes: new { @placeholder = "Select Documents", @class = "span6 chzn-select documentCategories", @tabindex = "8", @multiple = "multiple", @name = "DocumentId" })
</div>
</div>
</div>
</div>
对于单个 DropdownValue。
ViewBag.BranchId = new SelectList(_branchService.GetAllByOrganizationId((User as CustomPrincipal).DefaultOrganizationId), "Id", "Name");
ViewBag.BranchId = new SelectList(_branchService.GetAllByOrganizationId((User as CustomPrincipal).DefaultOrganizationId), "Id", "Name", exportLetter.LcTransctionDetails.Transactions.BranchId);
<div class="span4">
<div class="control-group">
<label class="control-label">Branch</label>
<div class="controls controls-row">
@Html.DropDownList("BranchId", null, htmlAttributes: new { @class = "form-control", @id = "Branches" })
</div>
</div>
</div>
推荐阅读
- json - 如果父元素不是最高元素,如何访问父 JSON 记录和子 JSON 记录?
- c# - 生成两个日期之间的每周营业日期列表,不包括周末和节假日
- angular - 角度谷歌地图@agm/core
- haskell - 如何在 Nix 中制作这个 Haskell 开发环境?
- php - PHP preg_match_all 具有类名的父级
- c++ - std::initializer_list: 错误 C2064: 术语不计算为采用 0 个参数的函数
- c# - SerialPort Write 不会触发缓冲区中的任何 BytesToRead
- javascript - 在 CSS/JavaScript 中获取默认按钮文本/背景颜色?
- java - 使用 OnItemCLick 时 Android ArrayList 搜索过滤器更改索引
- javascript - 将 rxjs websocket 连接到 Spring Boot 服务器