ভিউব্যাগ, ভিউডাটা এবং টেম্পডেটা


209

কোনও শরীর কখন ব্যাখ্যা করতে পারে

  1. TempData
  2. ViewBag
  3. ViewData

আমার একটি আবশ্যকতা রয়েছে, যেখানে আমার একটি নিয়ামকের মধ্যে একটি মান নির্ধারণ করা দরকার, সেই নিয়ামকটি কন্ট্রোলার টুতে পুনর্নির্দেশ করবে এবং কন্ট্রোলার দুটি ভিউ রেন্ডার করবে।

আমি ভিউব্যাগটি ব্যবহার করার চেষ্টা করেছি, কন্ট্রোলার টুতে পৌঁছার সাথে সাথে মানটি হারাবে।

আমি কখন ব্যবহার করতে হবে এবং সুবিধা বা অসুবিধাগুলি জানতে পারি?

ধন্যবাদ


5
এটি একটি দুর্দান্ত পোস্ট যা পার্থক্য ব্যাখ্যা করে।
বেকু

1
stackoverflow.com/a/17199709/2015869
ইমাদ আলাজানী

উত্তর:


293

1) TempData

আপনাকে এমন ডেটা সঞ্চয় করতে দেয় যা পুনঃনির্দেশের জন্য বেঁচে থাকবে। অভ্যন্তরীণভাবে এটি সেশনটিকে ব্যাকিং স্টোর হিসাবে ব্যবহার করে, পুনর্নির্দেশ করার পরে ডেটা স্বয়ংক্রিয়ভাবে উচ্ছেদ হয়ে যায়। নিদর্শনটি নিম্নলিখিত:

public ActionResult Foo()
{
    // store something into the tempdata that will be available during a single redirect
    TempData["foo"] = "bar";

    // you should always redirect if you store something into TempData to
    // a controller action that will consume this data
    return RedirectToAction("bar");
}

public ActionResult Bar()
{
    var foo = TempData["foo"];
    ...
}

2) ভিউব্যাগ, ভিউডেটা

আপনাকে এমন কোনও নিয়ামক ক্রিয়ায় ডেটা সংরক্ষণ করার অনুমতি দেয় যা সংশ্লিষ্ট ভিউতে ব্যবহৃত হবে। এটি ধরে নিয়েছে যে ক্রিয়াটি একটি দর্শন দেয় এবং পুনর্নির্দেশ করে না। শুধুমাত্র বর্তমান অনুরোধের সময় বেঁচে থাকে।

নিদর্শনটি নিম্নলিখিত:

public ActionResult Foo()
{
    ViewBag.Foo = "bar";
    return View();
}

এবং দেখুন:

@ViewBag.Foo

বা ভিউডাটা সহ:

public ActionResult Foo()
{
    ViewData["Foo"] = "bar";
    return View();
}

এবং দেখুন:

@ViewData["Foo"]

ViewBagকেবল চারদিকে একটি গতিশীল র‌্যাপার ViewDataএবং এটি কেবল এএসপি.নেট এমভিসি 3 তে বিদ্যমান।

এটি বলা হচ্ছে, এই দুটি নির্মাণের কোনওটিই ব্যবহার করা উচিত নয়। আপনার দেখার মডেল এবং দৃ strongly়ভাবে টাইপ করা ভিউ ব্যবহার করা উচিত। সুতরাং সঠিক নিদর্শনটি নিম্নলিখিত:

মডেল দেখুন:

public class MyViewModel
{
    public string Foo { get; set; }
}

কর্ম:

public Action Foo()
{
    var model = new MyViewModel { Foo = "bar" };
    return View(model);
}

শক্তভাবে টাইপ করা ভিউ:

@model MyViewModel
@Model.Foo

এই সংক্ষিপ্ত পরিচিতির পরে আসুন আপনার প্রশ্নের উত্তর দিন:

আমার প্রয়োজনটি হ'ল আমি কোনও নিয়ামকের মধ্যে একটি মান সেট করতে চাই, যে নিয়ামকটি কন্ট্রোলটারকে পুনর্নির্দেশ করবে এবং কন্ট্রোলার 2 ভিউ রেন্ডার করবে।

public class OneController: Controller
{
    public ActionResult Index()
    {
        TempData["foo"] = "bar";
        return RedirectToAction("index", "two");
    }
}

public class TwoController: Controller
{
    public ActionResult Index()
    {
        var model = new MyViewModel
        {
            Foo = TempData["foo"] as string
        };
        return View(model);
    }
}

এবং সম্পর্কিত ভিউ ( ~/Views/Two/Index.cshtml):

@model MyViewModel
@Html.DisplayFor(x => x.Foo)

টেম্পাটাটা ব্যবহার করার ক্ষেত্রেও ত্রুটি রয়েছে: যদি ব্যবহারকারী লক্ষ্য পৃষ্ঠায় F5 এ আঘাত করে তবে ডেটা নষ্ট হয়ে যাবে।

ব্যক্তিগতভাবে আমি টেম্পडेটাও ব্যবহার করি না। এটি কারণ অভ্যন্তরীণভাবে এটি সেশন ব্যবহার করে এবং আমি আমার অ্যাপ্লিকেশনগুলিতে সেশনটি অক্ষম করি। আমি এটি অর্জনের জন্য আরও বিশ্রামের উপায় পছন্দ করি। যা হ'ল: প্রথম কন্ট্রোলার অ্যাকশনে যা আপনার ডেটা স্টোরটিতে পুনর্নির্দেশের স্টোরটিকে এবং আপনার পুনঃনির্দেশের সময় উত্পন্ন অনন্য আইডি ব্যবহার করে store তারপরে টার্গেট অ্যাকশনে প্রাথমিকভাবে সঞ্চিত বস্তুটি ফিরিয়ে আনতে এই আইডিটি ব্যবহার করুন:

public class OneController: Controller
{
    public ActionResult Index()
    {
        var id = Repository.SaveData("foo");
        return RedirectToAction("index", "two", new { id = id });
    }
}

public class TwoController: Controller
{
    public ActionResult Index(string id)
    {
        var model = new MyViewModel
        {
            Foo = Repository.GetData(id)
        };
        return View(model);
    }
}

মতামত একই থাকে।


57
দুর্দান্ত উত্তর, তবে "এই দুটি কনস্ট্রাক্টের কোনওটিই কখনও ব্যবহার করা উচিত নয়" এই কূটনৈতিক বক্তব্যের সাথে আমি একমত নই। আমি ভিউব্যাগের জন্য বেশ কয়েকটি বৈধ ব্যবহারের সন্ধান পেয়েছি। উদাহরণস্বরূপ, আমি ViewBag.Titleআমার সমস্ত ভিউগুলিতে একটি সম্পত্তি সেট করেছি যা আমার _Layout.cshtmlবেস ভিউ ফাইলটিতে ব্যবহৃত হয় । অন্য একটি ক্ষেত্রে যেখানে আমি এটি ব্যবহার করি তা হল ব্যবহারকারীদের কাছে তথ্য-বার্তা (উদাহরণস্বরূপ "পণ্য সফলভাবে সংরক্ষণ করা হয়েছে!)"। Layout.cshtmlসরবরাহ করা থাকলে একটি বার্তা রেন্ডার করতে আমি কিছু জেনেরিক মার্কআপ রেখেছি এবং এটি আমাকে ViewBag.Messageকোনও ক্রিয়াকলাপে সেট করতে দেয় allows যে কোনও ক্ষেত্রে ভিউমোডেল সম্পত্তি ব্যবহারের অনেকগুলি অসুবিধা রয়েছে।
জেসি ওয়েব

22
আমাকে জেসির সাথে একমত হতে হবে, যদিও এটি একটি দুর্দান্ত বিবরণ, স্পষ্টভাবে উল্লেখ করে দেখুন যে ভিউব্যাগটি ব্যবহার করার কোনও উপযুক্ত কারণ নেই, এটি একটি মতামতের বিষয়, বাস্তবে কোনও বিষয় নয়। ভিউব্যাগকে অতিরিক্ত ব্যবহার করা অবশ্যই একটি খারাপ অভ্যাস এবং কিছু বিকাশকারী এই ফাঁদে পড়ে, তবে স্বাদে ব্যবহার করা এটি একটি শক্তিশালী সংস্থান।
রন ডিফ্রিটাস

1
@ ron.defreitas, ঠিক আছে, আমাকে বলুন তবেই আপনি কেন ভাল ব্যবহার করবেন ViewBag। যখন ভিউব্যাগের কিছু ব্যবহার থাকে তখন দয়া করে একটি নির্দিষ্ট, বাস্তব বিশ্বের পরিস্থিতি বর্ণনা করুন। আপনি বলছেন যেহেতু এটা যে, আমি তাঁকে উদ্ধৃত করছি একটি শক্তিশালী সম্পদ , আমি আপনাকে কিছু নির্দিষ্ট ক্ষেত্রে যেখানে এই আছে অনুমান শক্তিশালী সম্পদ হল শক্তিশালী । যেহেতু আমি কখনই এটি আমার কেরিয়ারে ব্যবহার করি নি, তাই লোকেরা কীভাবে এই শক্তিশালী অস্ত্রটি ব্যবহার করছে তা জানতে পেরে আমি খুব খুশি হব ।
দারিন দিমিত্রভ

27
আমরা এখানে একটি অভিজাতবিদ আছে। দারিন, জেসি বিশেষভাবে এরকম একটি উদাহরণ উল্লেখ করেছিলেন। সবসময় কাজ করার অন্যান্য উপায় থাকা সত্ত্বেও তাদের কার্যকারিতাটি স্বয়ংক্রিয়ভাবে প্রত্যাখ্যান করে না।
Djentleman

2
@ ডারিনডিমিট্রোভ: আমার এখনই একটি দৃশ্য আছে যেখানে আমাকে কোনও বৈশিষ্ট্য পদ্ধতির মধ্যে থেকে ভিউতে কিছু তথ্য পাঠানো দরকার। ফিল্টারকন্টেক্সট.কন্ট্রোলার.ভিউ ডেটা ব্যবহার করা দৃ strongly়ভাবে টাইপ করা ভিউতে যাওয়ার চেষ্টা করার চেয়ে যথেষ্ট সহজ। এটি বলেছিল, আপনার ব্যাখ্যার জন্য আপনাকে ধন্যবাদ, এটি খুব দরকারী ছিল।
অ্যান্ডি

15

এএসপি.নেট এমভিসি আমাদের নিয়ন্ত্রণকারীর থেকে ডেটা দেখার জন্য এবং পরবর্তী অনুরোধে তিনটি বিকল্প ভিউডাটা, ভিউব্যাগ এবং টেম্পডেটা সরবরাহ করে। ভিউডেটা এবং ভিউব্যাগ প্রায় একই রকম এবং টেম্পাটাটা অতিরিক্ত দায়িত্ব পালন করে। এই তিনটি অবজেক্টের মূল পয়েন্টগুলি আলোচনা করতে বা পেতে দেয়:

ভিউব্যাগ এবং ভিউডাটার মধ্যে সাদৃশ্য:

  • আপনি যখন নিয়ামক থেকে দেখার দিকে চলে যান তখন ডেটা বজায় রাখতে সহায়তা করে।
  • নিয়ামক থেকে সম্পর্কিত ভিউতে ডেটা পাস করতে ব্যবহৃত হয়।
  • সংক্ষিপ্ত জীবন মানে পুনঃনির্দেশ ঘটে যখন মান নালায় পরিণত হয়। এটি কারণ তাদের লক্ষ্যটি নিয়ামক এবং দর্শনগুলির মধ্যে কথোপকথনের একটি উপায় সরবরাহ করা। এটি সার্ভার কলের মধ্যে একটি যোগাযোগ ব্যবস্থা।

ভিউব্যাগ এবং ভিউডেটার মধ্যে পার্থক্য:

  • ভিউডাটা হ'ল অবজেক্টের একটি অভিধান যা ভিউডাটাডাটিরিয়াস বর্গ থেকে নেওয়া এবং কী হিসাবে স্ট্রিংগুলি ব্যবহার করে অ্যাক্সেসযোগ্য।
  • ভিউব্যাগ একটি গতিশীল সম্পত্তি যা সি # 4.0 তে নতুন গতিশীল বৈশিষ্ট্যগুলির সুবিধা গ্রহণ করে।
  • ভিউডাটা জটিল তথ্য প্রকারের জন্য টাইপকাস্টিং প্রয়োজন এবং ত্রুটি এড়াতে নাল মানগুলি পরীক্ষা করে।
  • ভিউব্যাগে জটিল ডেটা টাইপের জন্য টাইপকাস্টিংয়ের প্রয়োজন হয় না।

ভিউব্যাগ এবং ভিউ ডেটা উদাহরণ:

public ActionResult Index()
{
    ViewBag.Name = "Monjurul Habib";
    return View();
}


public ActionResult Index()
{
    ViewData["Name"] = "Monjurul Habib";
    return View();
} 

দেখুন:

@ViewBag.Name 
@ViewData["Name"] 

TempData:

টেম্পডাটা হ'ল অভিধানও টেম্পডাটা অভিধান অভিধান থেকে প্রাপ্ত এবং স্বল্প জীবন সেশনে সঞ্চিত এবং এটি একটি স্ট্রিং কী এবং অবজেক্টের মান। পার্থক্য হ'ল বস্তুর জীবনচক্র। টেম্পডেটা কোনও HTTP অনুরোধের সময়কালের জন্য তথ্য রাখে। এর অর্থ কেবল একটি পৃষ্ঠা থেকে অন্য পৃষ্ঠায়। এটি 302/303 পুনর্নির্দেশের সাথেও কাজ করে কারণ এটি একই HTTP অনুরোধে রয়েছে। আপনি যখন একটি নিয়ামক থেকে অন্য নিয়ামক বা অন্য ক্রিয়া থেকে অন্য ক্রিয়ায় চলে যান তখন ডেটা বজায় রাখতে সহায়তা করে। অন্য কথায় আপনি যখন পুনর্নির্দেশ করেন, "টেম্পডাটা" এই পুনঃনির্দেশগুলির মধ্যে ডেটা বজায় রাখতে সহায়তা করে। এটি অভ্যন্তরীণভাবে সেশন ভেরিয়েবলগুলি ব্যবহার করে। বর্তমান এবং পরবর্তী অনুরোধের সময় টেম্পের ডেটা ব্যবহারের অর্থ শুধুমাত্র তখনই ব্যবহৃত হয় যখন আপনি নিশ্চিত হন যে পরবর্তী অনুরোধটি পরবর্তী দর্শনে পুনঃনির্দেশিত হবে। জটিল ডাটা টাইপের জন্য এটি টাইপকাস্টিং প্রয়োজন এবং ত্রুটি এড়াতে নাল মানগুলি পরীক্ষা করে।

public ActionResult Index()
{
  var model = new Review()
            {
                Body = "Start",
                Rating=5
            };
    TempData["ModelName"] = model;
    return RedirectToAction("About");
}

public ActionResult About()
{
    var model= TempData["ModelName"];
    return View(model);
}

শেষ পদ্ধতিটি সেশন যা ভিউডাটার মতো কাজ করে এমন একটি অভিধানের মতো যা মূল্যের জন্য কী এবং অবজেক্টের স্ট্রিং নেয়। এই এক ক্লায়েন্ট কুকি মধ্যে সংরক্ষণ করা হয় এবং আরও অনেক দীর্ঘ সময়ের জন্য ব্যবহার করা যেতে পারে। কোনও গোপনীয় তথ্য না থাকার জন্য এটি আরও যাচাইকরণের প্রয়োজন need ভিউডাটা বা ভিউব্যাগ সম্পর্কিত আপনার এপ্লিকেশন কর্মক্ষমতা জন্য বুদ্ধিমানের সাথে ব্যবহার করা উচিত। কারণ প্রতিটি ক্রিয়া নিয়মিত এসপ নেটওয়্যার এমভিসি অনুরোধের পুরো জীবনচক্র ধরে। আপনি আপনার সন্তানের ক্রিয়াকলাপে ভিউডেটা / ভিউব্যাগ ব্যবহার করতে পারেন তবে সাবধান হন যে আপনি এটি সম্পর্কিত নয় এমন ডেটা পপুলেট করতে ব্যবহার করছেন না যা আপনার নিয়ামককে দূষিত করতে পারে।


11

TempData

মূলত এটি ডেটা রিডারের মতো, একবার পড়লে ডেটা হারিয়ে যাবে।

এই ভিডিওটি দেখুন

উদাহরণ

public class HomeController : Controller
{
    public ActionResult Index()
    {
        ViewBag.Message = "Welcome to ASP.NET MVC!";
        TempData["T"] = "T";
        return RedirectToAction("About");
    }

    public ActionResult About()
    {
        return RedirectToAction("Test1");
    }

    public ActionResult Test1()
    {
        String str = TempData["T"]; //Output - T
        return View();
    }
}

আপনি যদি উপরের কোডটিতে মনোযোগ দেন তবে টেম্পাটাটা পড়া না হওয়া পর্যন্ত রিডাইরেক্টটোএকশন টেম্পডাটার উপরে কোনও প্রভাব ফেলবে না। সুতরাং, একবার টেম্পডেটা পড়ার পরে মানগুলি হারিয়ে যাবে।

আমি টেম্পটাটা পড়ার পরে কীভাবে রাখতে পারি?

অ্যাকশন মেথড টেস্ট 1 এবং টেস্ট 2 এ আউটপুট পরীক্ষা করে দেখুন

public class HomeController : Controller
{
    public ActionResult Index()
    {
        ViewBag.Message = "Welcome to ASP.NET MVC!";
        TempData["T"] = "T";
        return RedirectToAction("About");
    }

    public ActionResult About()
    {
        return RedirectToAction("Test1");
    }

    public ActionResult Test1()
    {
        string Str = Convert.ToString(TempData["T"]);
        TempData.Keep(); // Keep TempData
        return RedirectToAction("Test2");
    }

    public ActionResult Test2()
    {
        string Str = Convert.ToString(TempData["T"]); //OutPut - T
        return View();
    }
}

আপনি যদি উপরের কোডটির দিকে মনোযোগ দেন তবে রেডাইরেক্টোঅ্যাকশনের পাশাপাশি ডেটা পড়ার পরে ডেটা হারাবে না এবং কারণটি হ'ল আমরা ব্যবহার করছি TempData.Keep()। তাই কি

এই পদ্ধতিতে আপনি অন্যান্য নিয়ামকগণের মধ্যে যতক্ষণ আপনার ইচ্ছা হিসাবে এটি স্থির রাখতে পারবেন।

ViewBag / ViewData

ডেটা সংশ্লিষ্ট দৃশ্যে অবিরত থাকবে


4

Asp.Net MVC তে টেম্পাটাটা খুব দরকারী বৈশিষ্ট্য। এটি বর্তমান অনুরোধ থেকে পরবর্তী অনুরোধে ডেটা পাস করতে ব্যবহৃত হয়। অন্য কথায়, যদি আমরা পুনঃনির্দেশ ঘটে যাওয়ার সময় এক পৃষ্ঠা থেকে অন্য পৃষ্ঠায় ডেটা প্রেরণ করতে চাই, আমরা টেম্পডাটা ব্যবহার করতে পারি, তবে এমভিসিতে এই বৈশিষ্ট্যটি অর্জন করতে আমাদের কোডের কিছুটা বিবেচনা করা দরকার। কারণ টেম্পাডাটার জীবন অতি সংক্ষিপ্ত এবং কেবলমাত্র লক্ষ্য ভিউ পুরোপুরি লোড না হওয়া অবধি lies তবে, টেম্পডাটাতে ডেটা ধরে রাখতে আমরা কীপ () পদ্ধতিটি ব্যবহার করতে পারি।

আরও পড়ুন


3

এমভিসিতে ভিউব্যাগ, ভিউডাটা, টেম্পডেটা এবং দেখুন রাজ্য

http://royalarun.blogspot.in/2013/08/viewbag-viewdata-tempdata-and-view.html

এএসপি.এনইটি এমভিসি আমাদের নিয়ন্ত্রণকারীর থেকে ডেটা দেখার জন্য এবং পরবর্তী অনুরোধে তিনটি বিকল্প ভিউডাটা, ভিবিগ এবং টেম্পডেটা সরবরাহ করে। ভিউডেটা এবং ভিউব্যাগ প্রায় একই রকম এবং টেম্পাটাটা অতিরিক্ত দায়িত্ব পালন করে।

ভিউব্যাগ এবং ভিউডাটার মধ্যে সাদৃশ্য:

আপনি যখন নিয়ামক থেকে দেখার দিকে চলে যান তখন ডেটা বজায় রাখতে সহায়তা করে। নিয়ামক থেকে সম্পর্কিত ভিউতে ডেটা পাস করতে ব্যবহৃত হয়। সংক্ষিপ্ত জীবন মানে পুনঃনির্দেশ ঘটে যখন মান নালায় পরিণত হয়। এটি কারণ তাদের লক্ষ্যটি নিয়ামক এবং দর্শনগুলির মধ্যে কথোপকথনের একটি উপায় সরবরাহ করা। এটি সার্ভার কলের মধ্যে একটি যোগাযোগ ব্যবস্থা।

ভিউব্যাগ এবং ভিউডেটার মধ্যে পার্থক্য:

ভিউডাটা হ'ল অবজেক্টের একটি অভিধান যা ভিউডাটাডাটিরিয়াস বর্গ থেকে নেওয়া এবং কী হিসাবে স্ট্রিংগুলি ব্যবহার করে অ্যাক্সেসযোগ্য। ভিউব্যাগ একটি গতিশীল সম্পত্তি যা সি # 4.0 তে নতুন গতিশীল বৈশিষ্ট্যগুলির সুবিধা গ্রহণ করে। ভিউডাটা জটিল তথ্য প্রকারের জন্য টাইপকাস্টিং প্রয়োজন এবং ত্রুটি এড়াতে নাল মানগুলি পরীক্ষা করে। ভিউব্যাগে জটিল ডেটা টাইপের জন্য টাইপকাস্টিংয়ের প্রয়োজন হয় না।

ভিউব্যাগ এবং ভিউ ডেটা উদাহরণ:

public ActionResult Index()

{  
    ViewBag.Name = "Arun Prakash";
    return View();    
}

public ActionResult Index()  
{
    ViewData["Name"] = "Arun Prakash";
    return View(); 
}

ভিউতে, আমরা নীচের মতো কল করি:

@ViewBag.Name   
@ViewData["Name"]

TempData:

আপনি যখন একটি নিয়ামক থেকে অন্য নিয়ামক বা অন্য ক্রিয়া থেকে অন্য ক্রিয়ায় চলে যান তখন ডেটা বজায় রাখতে সহায়তা করে। অন্য কথায় আপনি যখন পুনর্নির্দেশ করেন, তখন "টেম্পডাটা" এই পুনঃনির্দেশগুলির মধ্যে ডেটা বজায় রাখতে সহায়তা করে। এটি অভ্যন্তরীণভাবে সেশন ভেরিয়েবলগুলি ব্যবহার করে। টেম্পডেটা খুব স্বল্পস্থায়ী উদাহরণ হিসাবে বোঝানো হয় এবং আপনার কেবল এটি বর্তমান এবং পরবর্তী অনুরোধগুলির সময় ব্যবহার করা উচিত

আপনি যখন পুনঃনির্দেশিত হন কেবল তখনই টেম্পডাটা নির্ভরযোগ্যতার সাথে কাজ করবে scenario কারণ এটি একটি পুনঃনির্দেশ বর্তমান অনুরোধটিকে (এবং HTTP স্থিতি কোড 302 অবজেক্টটিকে ক্লায়েন্টে প্রেরণ করে) হত্যা করে, তারপরে পুনর্নির্দেশিত দর্শনটি পরিবেশন করার জন্য সার্ভারে একটি নতুন অনুরোধ তৈরি করে।

জটিল ডাটা টাইপের জন্য এটি টাইপকাস্টিং প্রয়োজন এবং ত্রুটি এড়াতে নাল মানগুলি পরীক্ষা করে।

public ActionResult Index()
{   
   var model = new Review()  
   {  
      Body = "Start",  
      Rating=5  
   };  

    TempData["ModelName"] = model;    
    return RedirectToAction("About");   
} 

public ActionResult About()       
{  
    var model= TempData["ModelName"];  
    return View(model);   
}  

1
void Keep()

Calling this method with in the current action ensures that all the items in TempData are not removed at the end of the current request.

    @model MyProject.Models.EmpModel;
    @{
    Layout = "~/Views/Shared/_Layout.cshtml";
    ViewBag.Title = "About";
    var tempDataEmployeet = TempData["emp"] as Employee; //need typcasting
    TempData.Keep(); // retains all strings values
    } 

void Keep(string key)

Calling this method with in the current action ensures that specific item in TempData is not removed at the end of the current request.

    @model MyProject.Models.EmpModel;
    @{
    Layout = "~/Views/Shared/_Layout.cshtml";
    ViewBag.Title = "About";
    var tempDataEmployeet = TempData["emp"] as Employee; //need typcasting
    TempData.Keep("emp"); // retains only "emp" string values
    } 

1

টেম্পডেটা সর্বদা প্রথম পড়ার আগ পর্যন্ত উপলব্ধ থাকবে, এটি একবার পড়ার পরে এটি আর উপলভ্য না হয়ে দ্রুত মেসেজ পাঠাতে দরকারী হতে পারে যা প্রথম পড়ার পরে চলে যাবে। ভিউব্যাগটি ভিউতে ডেটা টুকরো টুকরো করার সময় এটি আরও কার্যকর, সাধারণত আপনার সমস্ত ডেটা মডেলটির মাধ্যমে ভিউতে প্রেরণ করা উচিত, তবে এমন কিছু ক্ষেত্রে রয়েছে যখন আপনি ক্লাস থেকে সরাসরি মডেল হয়ে আসেন যেটি সত্ত্বেও কাঠামোর মতো ডাটাবেজে মানচিত্র রয়েছে সেই ক্ষেত্রে আপনি ডন না করেন you কোনও নতুন টুকরো ডেটা পাস করার জন্য আপনার মডেলটি কী পরিবর্তন করবেন, আপনি ভিউব্যাগের সাথে ভিউবাটাতে কেবলমাত্র তালিকাভুক্ত সংস্করণটি এমভিসি 3 এর আগে ব্যবহার করতে পারেন তা আটকে রাখতে পারেন


0

এছাড়াও ভিউব্যাগ এবং টেম্পিডেটের মধ্যে স্কোপ আলাদা। ভিউব্যাগটি প্রথম দর্শনের উপর ভিত্তি করে (অ্যাকশন পদ্ধতির মধ্যে ভাগ করা হয় না) তবে টেম্পডেটাটা কোনও অ্যাকশন পদ্ধতির মধ্যে ভাগ করা যায় এবং একে অপরের মধ্যে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.