在一个视图上使用多个模型的表单上的Foreach

时间:2017-01-05 18:24:18

标签: c# razor asp.net-core

我正在使用带有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;在用户模型上,但没有工作......

0 个答案:

没有答案