से सूची बनाएं और पढ़ें <मैं हाल ही में देखे गए उत्पादों को प्रदर्शित करने की कोशिश कर रहा हूं और अब तक मैंने इसे पहले ही कर लिया है। मेरे पास Product
तालिका है जिसमें कई उत्पाद संग्रहीत हैं। मेरे पास HomeController
है जिसमें Details()
की एक कार्य विधि है जो उत्पाद विवरण प्रदर्शित करती है।कुकीज
मैं AddRecentProduct
तरीका है जिसके Session
में हाल ही में देखा गया उत्पाद (10) को संग्रहीत करता है लिखा है अब मैं, आगंतुकों कंप्यूटर पर कम से कम 30days के लिए कुकीज़ में इन हाल ही में देखी उत्पाद सूची संग्रहीत करना चाहते हैं क्योंकि सत्र समाप्त हो। हाल ही में आईएमडीबी की तरह देखा।
यदि मैं अपने डेटाबेस RecentlyViewed
में कॉलम rv_id, userId, productId
के साथ एक और तालिका बनाता हूं तो मैं इस में हाल ही में देखे गए डेटा को कैसे सहेजूं? उपयोगकर्ता आईडी कॉलम लॉग इन उपयोगकर्ता की आईडी रखेगा लेकिन क्या होगा यदि कोई उपयोगकर्ता अतिथि (पंजीकृत नहीं है) तो समाधान क्या है? क्या मुझे GUID का उपयोग करने की आवश्यकता है?
RecentProduct.cs
public class RecentProduct
{
public int ProductId { get; set; }
public string ProdutName { get; set; }
public string ImageUrl { get; set; }
public DateTime LastVisited { get; set; }
}
नियंत्रक
public void AddRecentProduct(List<RecentProduct> list, int id, string name, int maxItems)
{
var item = recentProductList.FirstOrDefault(t => t.ProductId == id);
if (item == null)
{
list.Add(new RecentProduct
{
ProductId = id,
ProdutName = name,
LastVisited = DateTime.Now,
});
}
while (list.Count > maxItems)
{
list.RemoveAt(0);
}
}
public ActionResult Details(int? id)
{
if (id == null)
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
Product product = db.Products.Find(id);
if (product == null)
return HttpNotFound();
var list = Session["RecentProductList"] as List<RecentProduct>;
if (list == null)
{
list = new List<RecentProduct>();
Session["RecentProductList"] = list;
}
AddRecentProduct(list, id.Value, product.Name, 10);
ViewData["RecentProductList"] = list;
return View(product);
}
ProductDetails देखें पृष्ठ
<div class="col-sm-9">
@{
var recentProductList = ViewData["RecentProductList"] as List<Project.Models.RecentProduct>;
}
@foreach (var recentProduct in recentProductList)
{
<p>@recentProduct.ProdutName (id: @recentProduct.ProductId) </p>
}
</div>
मैं कर रहा हूँ सत्र के साथ वांछित परिणाम प्राप्त करना, अब मैं कुकीज़ के साथ ऐसा करना चाहता हूं।
यह मैं क्या कोशिश कर रहा हूँ बनाना कुकी है:
List<RecentProduct> yourList = new List<RecentProduct>();
RecentProduct rc = new RecentProduct();
rc.ProdutName = product.Name;
rc.ProductId = product.ProductId;
rc.ImageUrl = product.ImagePath;
rc.LastVisited = DateTime.Now;
yourList.Add(rc);
var yourListString = String.Join(",", yourList);
// Create a cookie
HttpCookie yourListCookie = new HttpCookie("YourList", yourListString);
// The cookie will exist for 7 days
yourListCookie.Expires = DateTime.Now.AddDays(7);
// Write the Cookie to your Response
Response.Cookies.Add(yourListCookie);
इस तरह और ProductDetails में देखें पृष्ठ पढ़ने कुकीज़:
@if (Request.Cookies["YourList"] != null)
{
// Your cookie exists - grab your value and create your List
List<string> yourList = Request.Cookies["YourList"].Value.Split(',').Select(x => Convert.ToString(x)).ToList();
// Use your list here
<p>@yourList</p>
}
मैं किसी भी परिणाम नहीं मिल रहा है। मैं कुकी और मूल्य कैसे पढ़ सकता हूं?
कृपया प्रश्न फिर से पढ़ें। अभी मैं इसे 'सत्र' में संग्रहीत कर रहा हूं और मैं इसे कुकीज़ में उत्पादों की सूची के रूप में स्टोर करना चाहता हूं और मैंने कहा ** अगर ** मैं हाल ही में देखे गए उत्पादों को संग्रहीत करने के लिए एक टेबल तैयार करता हूं जो समाधान होगा। – user3223395667