C# 如何使用ajax将模型值从上一页传递到新的page post方法?
Home.cshtmlC# 如何使用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
@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()