在 ASP.NET MVC5 中访问一个视图到另一个视图的数据

问题描述 投票:0回答:2

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

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" />
}

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

提前谢谢您。

asp.net-mvc-5
2个回答
2
投票

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

[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>

0
投票

我们也可以使用TempData

在控制器中:

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

视图中:

<h2>@TempData["Thanksdata"]</h2>

我们也可以使用Viewdata

在控制器中:

ViewData["Thanksdata"] = "data";

查看:

 <h2>@ViewData["Thanksdata"]</h2>

ViewData 和 ViewBag TempData 的区别

http://www.c-sharpcorner.com/Blogs/14947/difference- Between-viewdata-viewbag-and-tempdata.aspx

© www.soinside.com 2019 - 2024. All rights reserved.