C# 如何使用ajax将模型值从上一页传递到新的page post方法?

C# 如何使用ajax将模型值从上一页传递到新的page post方法?,c#,asp.net-mvc,C#,Asp.net Mvc,Home.cshtml @model Models.MyData @using (Html.BeginForm("AddData", "Home", FormMethod.Post, new { enctype = "multipart/form-data" })) { } HomeController.cs [HttpPost] public async Task<ActionResult> AddData(MyData myda

Home.cshtml

  @model Models.MyData 
    @using (Html.BeginForm("AddData", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))

    {
    }
HomeController.cs

 [HttpPost]
        public async Task<ActionResult> AddData(MyData mydata)
        {

            return View("AddDetails", mydata);
}
[HttpPost]        
    public async Task Progess(MyData mydata)
    {
HomeController.cs

 [HttpPost]
        public async Task<ActionResult> AddData(MyData mydata)
        {

            return View("AddDetails", mydata);
}
[HttpPost]        
    public async Task Progess(MyData mydata)
    {
如何从上一页获取mydata模型?我想展示UI,这就是为什么先使用
返回视图
而不是
重定向到操作

控制器

namespace Testy20161006.Controllers
{
    public class MyData
    {
        public string NeoData { get; set; }
    }

    public class HomeController : Controller
    {
        [HttpPost]
        //adding generic ActionResult to Task type
        public async Task<ActionResult> Progess(MyData mydata)
        {
            return View();
        }

        [HttpPost]
        public async Task<ActionResult> AddData(MyData mydata)
        {
            return View("AddDetails", mydata);
        }

        public ActionResult Tut137()
        {
            MyData myData = new MyData { NeoData = "neoData" };
            return View(myData);
        }
namespace testy2016 1006.控制器
{
公共类MyData
{
公共字符串NeoData{get;set;}
}
公共类HomeController:控制器
{
[HttpPost]
//将泛型ActionResult添加到任务类型
公共异步任务进程(MyData MyData)
{
返回视图();
}
[HttpPost]
公共异步任务AddData(MyData MyData)
{
返回视图(“添加详细信息”,mydata);
}
公共行动结果(第137页)
{
MyData MyData=新的MyData{NeoData=“NeoData”};
返回视图(myData);
}
第一页-在我的例子中是索引还是Tut137-

@model Testy20161006.Controllers.MyData 
@{
    Layout = null;
}
<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Tut137</title>
</head>
<body>
    @using (Html.BeginForm("AddData", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
    {
        @Html.TextBoxFor(r=>r.NeoData);
        <input id="theButton" type="submit" value="Go"  />
    }
</body>
</html>
@model testy2016 1006.Controllers.MyData
@{
布局=空;
}
图坦卡蒙
@使用(Html.BeginForm(“AddData”,“Home”,FormMethod.Post,new{enctype=“multipart/formdata”}))
{
@TextBoxFor(r=>r.NeoData);
}
AddDetails.cshtml

@model Models.MyData 

<script>

var someRootPath = "@Url.Content("~")";

        $.ajax({
            url: someRootPath + 'Home/Process',
            data: $('#AddData').serialize(),


            type: "POST",            
        });
    }
  </script>
@model Testy20161006.Controllers.MyData
@{
    Layout = null;
}
<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>AddDetails</title>
    <script src="~/Scripts/jquery-1.12.4.min.js"></script>
    <script type="text/javascript">
        $(function () {
            var someRootPath = "@Url.Content("~")";
            $.ajax({
                //rename Process to Progess to match call to method called
                url: someRootPath + 'Home/Progess',
                data: $('#AddData').serialize(),
                type: "POST",
            });
        })
    </script>
</head>
<body>
    <div>
        @Html.TextBoxFor(r => r.NeoData, new { id = "AddData" })
    </div>
</body>
</html>
@model testy2016 1006.Controllers.MyData
@{
布局=空;
}
添加详细信息
$(函数(){
var someRootPath=“@Url.Content(~”);
$.ajax({
//将进程重命名为proges以匹配对调用方法的调用
url:someRootPath+“主页/进度”,
数据:$('#AddData')。序列化(),
类型:“POST”,
});
})
@TextBoxFor(r=>r.NeoData,new{id=“AddData”})

查看此功能的TempData和TempData.Keep()