我用外键创建了3个表,Requests,RequestTypes和RequestStates。我有一个表单,我将有一个带有RequestTypes的下拉列表,例如(假日,低度医疗)。用户将在选择项上选择请求的类型,并带有我之前说过的选项。我想要该选择上的foreach显示我在具有ID(表Requests上的外键(TypeId))的表RequestTypes上的请求的类型。
提交表单后,将创建一个具有在表请求上看到的值的对象,因为我有一个http帖子将该对象放到数据库(表请求)上。在下拉列表中(要提交的表单上),我想显示字符串而不是ID,因此我需要放置有关表RequestTypes的信息,但是我想要,例如当用户选择类型为“ Holiday”的id为1,用TypeId = 1填充对象。但是我想以格式,字符串而不是id出现在选择选项上。使用实体框架查询可能吗?我不知道是否有可能加入2个表。我张贴了我需要的2张桌子的图像。谢谢!
答案 0 :(得分:0)
我解决了这个问题。很简单。
这是我控制器上的代码
public ActionResult Index(Requests rqst)
{
using (CiberbitHolidayTest context = new CiberbitHolidayTest())
{
ViewBag.requestTypes = context.RequestTypes.ToList();
}
return View("TimeOff");
}
我需要做的是在razor视图中的“我的选择”选项中输入了值=“ Type Id”,然后 option =“ Name”,因为该值与服务器有关。很简单,但我认为我需要进行查询。
这是关于foreach的代码部分,用于在select选项中列出项目。
<label for="example-text-input" class="col-8 col-form-label">Absence Type</label>
<div class="form-group row">
<div class="col-md-12">
<select id="absenceType" name="absenceType" ng-model="NewRequest.TypeId" class="form-control">
@foreach (var item in ViewBag.requestTypes) {
<option value="@item.TypeId">@item.Name</option>
}
</select>
</div>
</div>