我有一个ASP.NET MVC 5项目,我需要从我的控制器到一个视图获取一个类(大约有20个变量),然后我需要将数据返回给我的控制器。我知道我可以使用ViewBag变量,但这对于许多变量来说似乎很乏味,而且我不想使用模型,因为数据不一定来自或转到数据库。有谁知道这样做的好方法?
答案 0 :(得分:1)
使用视图模型。模型不必连接到数据库。它们在表格中的使用非常方便。以下是您可以做的非常简化的示例:
public class PersonViewModel
{
public string Name {get;set;}
public string Email {get;set;}
// .... etc
}
加载表单
[HttpGet]
public ActionResult MyForm()
{
return View(new PersonViewModel());
}
发表表格
[HttpPost]
public ActionResult MyForm(PersonViewModel model)
{
if (ModelState.IsValid)
{
// do stuff
}
return View(model);
}
查看(绑定到PersonViewModel)
@model PersonViewModel
<h1>Person Form</h1>
@using (Html.BeginForm())
{
@Html.LabelFor(m => m.Name)
@Html.TextBoxFor(m => m.Name)
@Html.LabelFor(m => m.Email)
@Html.TextBoxFor(m => m.Email)
<button type="submit">Submit</button>
}