Asp.net mvc 5 如何在asp.net mvc5中访问一个视图在另一个视图上的数据

Asp.net mvc 5 如何在asp.net mvc5中访问一个视图在另一个视图上的数据,asp.net-mvc-5,Asp.net Mvc 5,我用以下代码创建了一个控制器。 **在这个例子中,我没有使用任何模型 public ActionResult PersonalDetails() { return View(); } [HttpPost] public ActionResult Thanks(FormCollection formcol) { return View(); } 还

我用以下代码创建了一个控制器。 **在这个例子中,我没有使用任何模型

 public ActionResult PersonalDetails()
        {
            return View();
        }

        [HttpPost]
        public ActionResult Thanks(FormCollection formcol)
        {

            return View();
        }
还为带有以下标记的PersonalDetails操作添加了一个视图

@{
    ViewBag.Title = "PersonalDetails";
}

<h2>PersonalDetails</h2>

@{
    ViewBag.Title = "PersonalDetails";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<h2>PersonalDetails</h2>



@using (Html.BeginForm("Thanks", "DemoForms", FormMethod.Post))
{

    @Html.ValidationSummary()

    <p>
        Your Name : @Html.TextBox("FirstName")
    </p>
    <br />
    <p>
        Your Name : @Html.TextBox("LastName")
    </p>
    <p> Your Phone : @Html.TextBox("Phone")</p>
    <p> @Html.RadioButton("Gender", "Male", true) Male</p>
    <br />
    <p>@Html.RadioButton("Gender", "Female", false) Female </p>
    <p> @Html.CheckBox("Reading", true) Reading</p><br />
    <p> @Html.CheckBox("Cooking", false) Cooking</p><br />
    <p> @Html.CheckBox("Cooking", false) Painting</p><br />


    <p>
        Would you like to participate in Survey?
        @Html.DropDownList("ddlResponse", new[]
    {
         new SelectListItem() {Text="Yes", Value="Yes"},
         new SelectListItem() {Text="No", Value="No"}
    }, "Choose an Option")

    </p>
    <input type="submit" value="Submit Invite" />

}
@{
ViewBag.Title=“PersonalDetails”;
}
个人资料
@{
ViewBag.Title=“PersonalDetails”;
Layout=“~/Views/Shared/_Layout.cshtml”;
}
个人资料
@使用(Html.BeginForm(“谢谢”,“演示”,FormMethod.Post))
{
@Html.ValidationSummary()

您的姓名:@Html.TextBox(“名字”)


您的姓名:@Html.TextBox(“姓氏”)

您的手机:@Html.TextBox(“手机”)

@Html.RadioButton(“性别”,“男性”,真实)男性


@单选按钮(“性别”,“女性”,假)女性

@Html.CheckBox(“正在阅读”,true)正在阅读


@Html.CheckBox(“烹饪”,假)烹饪


@Html.CheckBox(“烹饪”,假)绘画


您愿意参加调查吗? @Html.DropDownList(“ddlResponse”,新[] { 新建SelectListItem(){Text=“Yes”,Value=“Yes”}, 新建SelectListItem(){Text=“No”,Value=“No”} },“选择一个选项”)

}
当用户在上述视图中输入信息并单击提交按钮时,它将重定向到感谢操作。 我想创建一个显示此信息的感谢视图。 请让我知道如何在感谢视图上显示/访问信息


提前感谢。

执行此操作的典型方法是将数据发送到服务器上的新视图。有很多不同的模式。对于模型绑定,请执行以下操作:

[HttpPost]
public ActionResult Thanks(FormCollection formcol)
{
    ThanksViewModel model=new ThanksViewModel();

    //add the data to the model

    return View(model); //return the model with the view 
}
如果未在视图页面中使用模型绑定功能,则始终可以使用
ViewBag
传递数据:

[HttpPost]
public ActionResult Thanks(FormCollection formcol)
{
    ViewBag.ThanksData="data"; //add data as properties of ViewBag

    return View();
}
ViewBag
只是一种内置的动态类型,您可以在其上存储任何数据。然后,可以使用标准razor语法在视图中呈现此数据。例如在剃须刀页面中:

@{
    ViewBag.Title = "PersonalDetails";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<h2>PersonalDetails</h2>
<p>@ViewBag.ThanksData</p>
@{
ViewBag.Title=“PersonalDetails”;
Layout=“~/Views/Shared/_Layout.cshtml”;
}
个人资料
@ViewBag.ThanksData


我们也可以使用TempData

在控制器中:

[HttpPost]
public ActionResult Thanks()
{
 TempData["Thanksdata"] = "data"; 
 return View();
}
ViewData["Thanksdata"] = "data";
鉴于:

<h2>@TempData["Thanksdata"]</h2>
视图:

@ViewData[“Thanksdata”]
ViewData和ViewBag TempData之间的差异


谢谢mattew,ViewBag解决了问题。只是想知道,我们可以将formcollection传递给视图吗?或者我们必须使用viewdata/viewbag/tempdata等或模型绑定。
 <h2>@ViewData["Thanksdata"]</h2>