如何在Postback事件中读取ADO.NET实体数据模型对象中的特定字段

本文关键字:对象 数据模型 字段 实体 ADO Postback 事件 读取 NET | 更新日期: 2023-09-27 18:26:07

我有一个下拉列表,它是从数据库中填充的,如下所示:

控制器

PayrollDb pdb = new PayrollDb ();
var addBranchGui = new branch();
addBranchGui.BranchTypes = new SelectList(pdb.branchtypes,"Id", "Type");


查看

<p>Branch Type:@Html.DropDownListFor(x => x.BranchType, Model.BranchTypes, "Choose an option")</p>

此代码将正确填充下载列表。当用户在下拉列表中选择一个选项并提交表单时,问题就会出现,而我在[HttpPost操作方法上捕获输入数据并将其插入数据库表中,当我希望插入"Type"字段时,会插入"Id"字段。

我可以理解,在Postback事件中,浏览器正在读取"Id"字段。有人能告诉我如何命令浏览器给我"Type"字段,这样我就可以把它插入数据库了。

如何在Postback事件中读取ADO.NET实体数据模型对象中的特定字段

SelectList构造函数中,将Id指定为下拉列表的数据值字段。

addBranchGui.BranchTypes = new SelectList(pdb.branchtypes,"Id", "Type");

所以它会像一样呈现下拉列表

<SELECT name="BranchType">
   <option value="2">HeadOffice</head>
   <option value="4">Branch</head>
</SELECT>

因此,将其更改为使用Type作为数据值字段。

addBranchGui.BranchTypes = new SelectList(pdb.branchtypes,"Type", "Type");

这将为选项值和选项文本呈现具有相同值的SELECT元素

<SELECT name="BranchType">
   <option value="HeadOffice">HeadOffice</head>
   <option value="Branch">Branch</head>
</SELECT>

现在,当用户发布表单时,您将在BranchType字段

中获得文本值(类型)