ارسال داده ها از یک Action method به Action method دیگر ASP.Net MVC
با سلام در این مقاله، با یک مثال، نحوه انتقال (ارسال) داده ها از یکAction method به یک Action method دیگر با استفاده از شی TempData در ASP.Net MVC Razor توضیح خواهیم داد .
Controller
Controller شامل سه روش است :
روش دست زدن به عملیات GET
در این روش، به سادگی View بازگردانده می شود.
روش اداره عملیات POST - فرم 1
این روش زمانی که فرم 1 با کلیک بر روی دکمه ذخیره ارسال می شود. یک پیام رشته در TempData را نشان می دهد که نشانگر دکمه Save است و سپس به نمای Index باز می گردد.
روش اداره عملیات POST - فرم 2
این روش زمانی که فرم 2 با کلیک بر روی دکمه لغو ارسال شده است. این یک پیام رشته در TempData را نشان می دهد که نشان می دهد دکمه لغو بر روی دکمه کلیک کرده و سپس به نمای Index باز می گردد.
public class HomeController : Controller
{
// GET: Home
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult Save()
{
TempData["Message"] = "You clicked Save!";
return RedirectToAction("Index");
}
[HttpPost]
public ActionResult Cancel()
{
TempData["Message"] = "You clicked Cancel!";
return RedirectToAction("Index");
}
}
View
نشانه View زیر شامل دو فرم ایجاد شده با استفاده از روش های Html.BeginForm Helper و هر فرم شامل یک دکمه ارسال HTML است.
در پایان، یک روش جاوا اسکریپت وجود دارد که پیام Object TempData را با استفاده از جعبه پیام هشدار جاوااسکریپت نشان می دهد.
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width"/>
<title>Index</title>
</head>
<body>
<table>
<tr>
<td>
@using (Html.BeginForm("Save", "Home", FormMethod.Post))
{
<input type="submit" id="btnSave" value="Save"/>
}
</td>
<td>
@using (Html.BeginForm("Cancel", "Home", FormMethod.Post))
{
<input type="submit" id="btnCancel" value="Cancel"/>
}
</td>
</tr>
</table>
@if (TempData["Message"] != null)
{
<script type="text/javascript">
window.onload = function () {
alert('@TempData["Message"]');
};
</script>
}
</body>
</html>