You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MVC 6项目中如何通过JQuery从Session获取模型的指定字段

MVC 6项目中如何通过JQuery从Session获取模型的指定字段

嗨,我来帮你搞定这个问题!你现在拿到的是字符串,是因为存在Session里的SearchData是序列化后的JSON字符串,得先把它转成JavaScript对象,才能访问里面的具体字段,步骤很简单:

第一步:确保后端存储的是序列化后的JSON

首先得确认你在后端把SearchModel对象存进Session时,是先序列化成JSON字符串的(如果还没这么做的话),示例代码如下:

// 假设你已经实例化了SearchModel并赋值
var searchModel = new SearchModel 
{ 
    SSN = "123-45-6789", 
    EmployeeNumber = "EMP001",
    LastName = "Doe",
    FirstName = "John"
};
// 序列化为JSON字符串
var jsonData = System.Text.Json.JsonSerializer.Serialize(searchModel);
// 存入Session
HttpContext.Session.SetString("SearchData", jsonData);

第二步:前端解析JSON字符串为JS对象

你之前的代码直接拿的是字符串,现在需要用JSON.parse()把它转成JS对象,另外要注意用@Html.Raw()避免JSON里的引号被HTML编码,否则解析会失败。修改后的前端代码:

$(document).ready(function () {
    // 用Html.Raw输出原始JSON字符串,避免编码问题
    var searchDataJson = '@Html.Raw(HttpContextAccessor?.HttpContext?.Session?.GetString("SearchData"))';
    // 解析成JS对象,同时处理Session为空的情况
    var searchData = searchDataJson ? JSON.parse(searchDataJson) : {};
    
    // 现在就能直接访问指定字段啦!
    console.log("SSN:", searchData.SSN);
    console.log("员工编号:", searchData.EmployeeNumber);
    console.log("姓氏:", searchData.LastName);
    // 对了,你问题里提到的EmployerName在你的模型里不存在哦,应该是EmployeeNumber吧😉
});

小提示

  • 如果Session里的SearchData可能为空,一定要加个判断,不然JSON.parse()会报错,上面的代码已经用三元表达式处理了这种情况。
  • 用@Html.Raw()很关键,不然JSON里的双引号会被转成",导致解析失败。

备注:内容来源于stack exchange,提问作者Diego

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 15:52:58