如何从单个视图中检索多个模型

时间:2016-11-24 01:44:12

标签: c# .net asp.net-mvc entity-framework

是否有办法在不使用强类型HTML帮助程序的情况下从视图中获取模型对象到控制器。 View使用Account实体但需要发布表单并检索在用于生成值/表格网格的foreach循环中运行的变量的帐户实体。下拉列表中的信息用于不同的实体,因此不会强类型化。

public class HomeController : Controller
{
    // GET: Home
    ModelContext model = new ModelContext();


    [HttpGet]
    public ActionResult Index()
    {


        return View(model.accounts.ToList());
    }

    [HttpPost]
    public ActionResult Index(Account account,List<string> status,string name)
    {
      // return student object
        return View();
    }
}

视图中的其余代码在foreach循环上运行,以生成table

中的html @HTML.BeginForm
<td>

        @Html.DropDownList("status",
        new SelectList(Enum.GetValues(typeof(ProjectName.Models.Code))),
        "...",
        new { @class = "form-control" })

</td>

<td>
    @Html.TextArea("comment");
</td>

1 个答案:

答案 0 :(得分:1)

您应该创建一个父视图模型,其中包含您在视图中需要的这两种视图模型。例如:

public class ViewModel
{
    public ProjectName.Models.Code Code {get; set;} 
    public ProjectName.Models.Account Account {get; set;}
}

另外,请查看MVC - Multiple models in a view。我认为这对你有好处。

希望这有帮助!