MVC3 Razor - 如何将数据从控制器传递到视图 - 并返回到控制器

use*_*147 3 razor asp.net-mvc-3

我有一个视图,其中所有内容将由用户填充 - 但与父实体相关.我使用ViewBag将该Id传递给我的视图,但我不知道如何将其恢复到控制器中的post动作.我已经尝试过隐藏的表单字段,但它没有在帖子中显示,或者我不知道如何抓住它...控制器:

public ActionResult AddCar(int id)
{
ViewBag.Id = id;
return View();
}
Run Code Online (Sandbox Code Playgroud)

查看(试过):

    @using (Html.BeginForm("AddReturn", "DealerAdmin", new { id = carId }))
    {
View (tried):
     @Html.Hidden(carId.ToString())
Run Code Online (Sandbox Code Playgroud)

我可以在控制器中检索后期操作中的值吗?或者有更好/不同的方法来接近它吗?谢谢

Jay*_*nga 9

为post创建一个ViewModel,它将如下所示

public class Post
{
   int id {get;set;}
   //other properties
}
Run Code Online (Sandbox Code Playgroud)

并在您的控制器操作中发送一个帖子对象

public ActionResult AddCar(int id)
{
 Post post = new Post();
 post.Id = id;
return View(post);
}
Run Code Online (Sandbox Code Playgroud)

您的视图应使用Post类作为模型

@model namespace.Post
@using (Html.BeginForm("AddReturn", "DealerAdmin", FormMethod.Post)
    {
      @Html.HiddenFor(model => model.Id)
    }
Run Code Online (Sandbox Code Playgroud)

以及期望结果的控制器操作应该有一个post对象作为输入参数

public ActionResult AddReturn(Post post)
{
 //your code
}
Run Code Online (Sandbox Code Playgroud)