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

如何将存储过程返回的单个结果展示到Index视图?

实现存储过程结果在Index视图展示的方案

我来帮你一步步搞定这个需求~ 你的现有控制器代码还差几个关键步骤,咱们慢慢调整:

第一步:完善控制器逻辑

你的代码目前获取了存储过程的结果,但没传递给视图,也没处理Session为空的情况,先调整Index方法:

public ActionResult Index()
{
    // 先检查Session["EID"]是否存在,避免空值传递给存储过程
    if (Session["EID"] == null)
    {
        // 可根据业务需求跳转到登录页或返回提示视图
        return RedirectToAction("Login", "Account");
    }

    var sessionString = Convert.ToString(Session["EID"]);
    UserDetailsViewModel userDetails = null;

    try
    {
        // 调用存储过程,由于返回单个结果,用FirstOrDefault()获取实体
        var result = db_RIRO.sp_GetUserDetails(sessionString).FirstOrDefault();
        
        // 将存储过程返回的结果映射到ViewModel(规范做法,也可直接传result)
        if (result != null)
        {
            userDetails = new UserDetailsViewModel
            {
                FirstName = result.FirstName,
                LastName = result.LastName,
                // 补充存储过程返回的其他列对应的属性赋值
            };
        }
    }
    catch (Exception ex)
    {
        // 建议记录日志而非直接抛出异常,同时给用户友好提示
        // Logger.Error("获取用户详情失败", ex);
        ModelState.AddModelError("", "获取用户信息失败,请稍后重试");
    }

    // 将ViewModel传递给视图
    return View(userDetails);
}

第二步:创建视图模型(ViewModel)

为了让视图能强类型绑定数据,更安全易维护,创建一个ViewModel类:

public class UserDetailsViewModel
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    // 按照存储过程返回的列,补充其他属性(如Email、Department等)
}

第三步:编写Index视图

在对应Views文件夹的Index.cshtml中,用强类型视图展示用户信息:

@model YourProjectName.Models.UserDetailsViewModel

@{
    ViewBag.Title = "用户详情";
}

<h2>个人信息</h2>

@if (Model != null)
{
    <div class="user-info-card">
        <p><strong>姓氏:</strong> @Model.LastName</p>
        <p><strong>名字:</strong> @Model.FirstName</p>
        <!-- 按同样方式展示其他用户属性 -->
    </div>
}
else
{
    <p>未找到用户信息,或Session已过期,请重新登录。</p>
}

@Html.ValidationSummary(true)

额外提醒

  • 确认存储过程返回的是单个结果,FirstOrDefault()能正确获取实体;如果返回多个结果,可根据业务调整为ToList()
  • 异常处理优先记录日志,方便后续排查问题,不要直接把异常暴露给用户
  • 务必提前校验Session["EID"],避免空值传入存储过程引发报错

内容的提问来源于stack exchange,提问作者Odie

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 06:42:23