تا %60 تخفیف خرید برای 8 نفر با صدور مدرک فقط تا
00 00 00
در توسینسو تدریس کنید

انتقال اطلاعات از Controller به View در MVC

انتقال اطلاعات از Controller به View در MVC

در این نکته قصد داریم اولین ارتباط را بین Controller و View برقرار کنیم .برای پاس دادن اطلاعات از Controller به View راه های متفاوتی وجود دارد یکی از این راهها استفاده از viewBag میباشد.viewBag یک کلاس نوع داینامیک است ،یعنی در زمان کد نویسی به تعداد دلخواه و با نام دلخواه میتوان برای آن Property در نظر گرفت . برای اینکار مثال زیر را باهم مرور میکنیم.ابتدا یک کنترلر جدید ایجاد میکنیم یک ActionResult جدید به نام Students ایجاد میکنیم.و با استفاده از ViewBag دو Property به نام های name و family ایجاد کرده و به آنها مقدار دلخواه اختصاص میدهیم.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace WebApplication2.Controllers
{
    public class HomeController : Controller
    {
        //
        // GET: /Home/
        public ActionResult Index()
        {
            return View();
        }
        public ActionResult Students()
        {
            ViewBag.name = "Nafiseh";
            ViewBag.family = "hoseini";
            return View();
        }
         }
	}
}

حال داخل view مربوطه کدهای زیر را وارد میکنیم:


@{
    ViewBag.Title = "Students";
}

<h2>student
    </h2>
<p>
    Name:@ViewBag.name

</p>
<p>
    family:@ViewBag.family
</p>
<p>
    age:@ViewBag.age
</p>


وقتی از صفحه اجرا بگیریم نتیجه به صورت زیر قابل مشاهده است.

 انتقال اطلاعات از Controller  به View  در MVC

حال میخواهیم بدانیم چگونه ارتباط Model را با View و Controller برقرار کنیم. ابتدا به پوشه ی Models رفته و یک کلاس جدید به نام student ایجاد میکنیم.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace WebApplication2.Models
{
    public class student
    {
        public student()
        {

        }
        public student(string name,string family,int age)
        {
            this.Age = age;
            this.Family = family;
            this.Name = name;
        }
        public int Age { get; set; }
        public string Name { get; set; }
        public string Family { get; set; }
    }
}

برای ارتباط آن با کنترلر به داخل فایل HomeController رفته و SecondStudens را ایجاد میکنیم در اینجا باید از روی کلاس student داخل Models یک شی ایجاد کنیم تا به Property های آن دسترسی داشته باشم .داخل View نام view مربوطه که برای این ActionResult ایجاد کردیم را مینویسیم و پارامتر مربوطه در اینجا s که یک شی ایجاد شده از روی کلاسی است که در مدل ساخته ایم را بر میگردانیم

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace WebApplication2.Controllers
{
    public class HomeController : Controller
    {
        //
        // GET: /Home/
        public ActionResult Index()
        {
            return View();
        }
        public ActionResult Students()
        {
            ViewBag.name = "Nafiseh";
            ViewBag.family = "hoseini";
            return View();
        }
        public ActionResult SecondStudents()
        {
            WebApplication2.Models.student s = new Models.student("Nafiseh", "Hoseini", 2);

            return View("SecondStudents", s);
        }
	}
}

حال روی SecondStudents کلیک راست کرده و Add view را انتخاب میکنیم اینبار گزینه ی Details را برای Template و نام کلاس Student را از Model class انتخاب میکنیم.

 انتقال اطلاعات از Controller  به View  در MVC

همانطور که مشاهده میکنیم داخل viewمربوطه تمامی Propertyکه به مدل مربوط میشود به طور خود کار ایجاد شده است و میتوان از آن اجرا گرفت.

@model WebApplication2.Models.student

@{
    ViewBag.Title = "SecondStudents";
}

<h2>SecondStudents</h2>

<div>
    <h4>student</h4>
	<hr />
    <dl class="dl-horizontal">
        <dt>
            @Html.DisplayNameFor(model => model.Age)
        </dt>

        <dd>
            @Html.DisplayFor(model => model.Age)
        </dd>

        <dt>
            @Html.DisplayNameFor(model => model.Name)
        </dt>

        <dd>
            @Html.DisplayFor(model => model.Name)
        </dd>

        <dt>
            @Html.DisplayNameFor(model => model.Family)
        </dt>

        <dd>
            @Html.DisplayFor(model => model.Family)
        </dd>

    </dl>
</div>
<p>
    @Html.ActionLink("Edit", "Edit", new { /* id = Model.PrimaryKey */ }) |
    @Html.ActionLink("Back to List", "Index")
</p>

نتیجه به صورت زیر مشاهده میشود:

 انتقال اطلاعات از Controller  به View  در MVC

نظر شما
برای ارسال نظر باید وارد شوید.
0 نظر

هیچ نظری ارسال نشده است! اولین نظر برای این مطلب را شما ارسال کنید...

افرادی که این مطلب را خواندند مطالب زیر را هم خوانده اند
تنظیمات حریم خصوصی
تائید صرفنظر