簡體   English   中英

我們可以在 Razor View.Net core 3.1 中訪問存儲在 session 中的復雜 object

[英]Can we Access Complex object stored in session in Razor View .Net core 3.1

是否有可能在 .net 核心 3.1 中訪問復雜的 object inside.cshtml? 我瀏覽了大多數網站都無法獲得相同的任何信息。 在服務器端,我發現我們可以執行以下操作

public static class SessionExtensions
{
    public static T GetComplexData<T>(this ISession session, string key)
    {
        var data = session.GetString(key);
        if (data == null)
        {
            return default(T);
        }
        return JsonConvert.DeserializeObject<T>(data);
    }

    public static void SetComplexData(this ISession session, string key, object value)
    {
        session.SetString(key, JsonConvert.SerializeObject(value));
    }
}

HttpContext.Session.SetComplexData("abcd", listOfObject);

我們如何訪問這個 listOfObject ,它是 razor 視圖中 session 中的列表?

問候,基蘭

您可以在返回視圖之前在服務器端代碼中訪問上述方法。 這樣,您可以創建一個 ViewModel 來存儲您的復雜 object,並返回此 ViewModel。 現在您可以在 razor 視圖中訪問您的復雜 object。

前任:

public IActionResult Index()
{
    var myComplexObject = HttpContext.Session.GetComplexData<ComplexObjectType>("abcd");

    var vM = new SomeViewModel
    {
        ComplexObject = myComplexObject
    };

    return View(vM);
}

然后在視圖中,

@model ProjectName.ViewModels.SomeViewModel

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}

// Access it like so:
Model.ComplexObject 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM