برای انتقال اطلاعات از اکشن به ویو راه های گوناگونی وجود درارد که در ادامه به معرفی یکی از آنها میپردازیم و برای آن مثال هایی میزنیم.
برای انتقال اطلاعات بین درخواست های مختلف یا Request ها در Asp.net core می توان از ViewBag استفاده کرد. شما با استفاده از دستور ViewBag می توانید اطلاعات را به صورت dynamic بین کنترلر و ویو جابجا کنید.
Bag به معنی کوله پشتی و View به معنای صفحه میباشد و ViewBag به معنی کوله پشتی ویو میباشد توسط این دستور ما میتوانیم مقداری را در اکشن به سمت ویو ارسال کنیم.
ایجاد ViewBag در اکشن
ViewBag.name = Name;
فراخوانی ViewBag در ویو
<h4>Name : @ViewBag.Name</h4>
اکشن
public ActionResult step1(string Name,string Family)
{
ViewBag.name = Name;
ViewBag.family = Family;
return View();
}
ویو
<h4>Name : @ViewBag.Name</h4>
<h4>Name : @ViewBag.Family</h4>
اکش
public ActionResult step2(int a,int b)
{
ViewBag.A = a;
ViewBag.B = b;
return View();
}
ویو
@{
int sum = ViewBag.A + ViewBag.B;
}
<h4>sum = @sum</h4>
Action
public ActionResult step3(int a,int b)
{
int sum = a + b;
ViewBag.Sum = sum;
return View();
}
View
<h4>sum = @ViewBag.Sum</h4>
توجه : اگر یک ورودی داشته باشیم از هر جنسی و نام آن را Id قرار دهیم دیگر نیاز نیست توسط Query String آن را دریافت کنیم. Id یک مقدار رزرو شده است.
کد های اکشن
public ActionResult step4(int id)
{
ViewBag.Id = id;
return View();
}
کد های ویو
@for (int i = 1; i <= ViewBag.Id; i++)
{
if (i % 2 == 0)
{
<h4>item @i</h4>
}
else
{
<h4 style="background-color:red;">item @i</h4>
}
}
نحوه فراخوانی
Domain Name / Contoroller Name / step4 / 5