我正在使用带有FK,PK的数据库。我想用2张表制作一个表格,两者都有正确的关系等。
表格
User : ID (PK), Name, Company (FK)
Company: ID(PK), Name
用户输入的表单是名称,我想在下拉列表中检索Company.Name而不是ID。
以下是表单:
@model User_rel
<form asp-action="Create">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<input asp-for="User.Name" class="form-control" />
<span asp-validation-for="pessoa.Nome" class="text-danger" />
<label asp-for="Company.Name" class="col-md-2 control-label">Company *</label>
<select name="empresa">
@foreach (User test in Model.user)
{
<option value="@Model.company.ID">@Model.company.Name</option>
}
</select>
</div>
</form>
这些是我的模型
public class User_rel
{
public User user { get; set; }
public Company company { get; set; }
}
public class User
{
public int ID{get;set;}
public string User{get;set;}
public int Company_rel{get;set;}
}
这是控制器
public IActionResult Create()
{
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create(string empresa, [Bind("Name, Company_rel")] User user)
{
if (ModelState.IsValid)
{
await _context.Database.ExecuteSqlCommandAsync("USER_SET @p0, @p1", parameters: new Object[] { user.Name, user.Company_rel });
return RedirectToAction("Index");
}
return View(user);
}
已经很多次并且遵循了大量的教程,但它没有奏效。
foreach语句无法对“RTM_MVC.Models.User”类型的变量进行操作,因为“RTM_MVC.Models.User”不包含“GetEnumerator”的公共定义
我试图把GetEnumerator&lt;&gt;在用户模型上,但没有工作......