ورود

View Full Version : سوال: انتقال یک پیام از کنترلر به ویو با کمک ویو دیتا یا ویو بق



kamran_14
چهارشنبه 12 اسفند 1394, 14:04 عصر
سلام
برای انتقال یک پیام از کنترلر به ویو از دستور زیر در سمت کنترلر استفاده میکنیم:


ViewData["a"]="hello"
و در سمت ویو مینویسیم:

ViewBag.a

میشه توضیحی در مورد viewData , ViewBag بدید من فقط در همین حد میدونم که برای انتقال data از کنترلر به ویو استفاده میشه.
آیا viewData , ViewBag متغییرند؟

sadeghmosavi539
چهارشنبه 12 اسفند 1394, 15:02 عصر
سلام
برای انتقال یک پیام از کنترلر به ویو از دستور زیر در سمت کنترلر استفاده میکنیم:


ViewData["a"]="hello"
و در سمت ویو مینویسیم:

ViewBag.a

میشه توضیحی در مورد viewData , ViewBag بدید من فقط در همین حد propertyمیدونم که برای انتقال data از کنترلر به ویو ستفاده میشه.
آیا viewData , ViewBag متغییرند؟

سلام دوست عزیز

viewbag و viewdata دو شی پویا (Dynamic Object) هستند . یعنی هیچ گونه property و متدی درون ان ها وجود ندارد و زمانی که مثلا شما می نویسی
"Viewbag.Name="reza یک پروپرتی همان لحظه در viewbag به نام Name ایجاد کردی .viewdata هم دقیقا مثل viewbag است ولی یک تفاوت دارند و ان هم در این است که viewdata یک property به نام model دارد که شما می توانی مقدار یا ابجکت مورد نظرت برای پاس دادن به View استفاده کنی .

وسلام.

امید وارم برات مفید بوده باشه.

kamran_14
چهارشنبه 12 اسفند 1394, 16:10 عصر
من با این اکشن یک آبجکت به سمت ویو میفرستم"

public ActionResult Index() {
userProfile ouserProfile = new userProfile();
ouserProfile.Username = "kamran_14";
ouserProfile.Password = "232423423375";
ouserProfile.UserActive = true;
ViewData["m1"] = ouserProfile;
return View();
}
و در سمت ویو با استفاده از viewData چطوری میتونم مقدار رو بگیرم من با viewBag میتونم (مثلا برای دریافت یوزرنیم در ویو مینویسم=> userName: @ViewBag.m1.Username) ولی با ViewData نمیتونم

sadeghmosavi539
چهارشنبه 12 اسفند 1394, 16:50 عصر
من با این اکشن یک آبجکت به سمت ویو میفرستم"

public ActionResult Index() {
userProfile ouserProfile = new userProfile();
ouserProfile.Username = "kamran_14";
ouserProfile.Password = "232423423375";
ouserProfile.UserActive = true;
ViewData["m1"] = ouserProfile;
return View();
}
و در سمت ویو با استفاده از viewData چطوری میتونم مقدار رو بگیرم من با viewBag میتونم (مثلا برای دریافت یوزرنیم در ویو مینویسم=> userName: @ViewBag.m1.Username) ولی با ViewData نمیتونم

باید با عملیات Casting کارت رو انجام بدی


@foreach (Username a in (Viewdata["m1"] as IEnumerable<Username>)) { <li>@a.Password</li>