从视图发送数据

时间:2015-07-26 23:59:03

标签: c# asp.net-mvc asp.net-mvc-5

我有一个ASP.NET MVC 5项目,我需要从我的控制器到一个视图获取一个类(大约有20个变量),然后我需要将数据返回给我的控制器。我知道我可以使用ViewBag变量,但这对于许多变量来说似乎很乏味,而且我不想使用模型,因为数据不一定来自或转到数据库。有谁知道这样做的好方法?

1 个答案:

答案 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>
}