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

MVC中Html.ActionLink报linkText空值错误,请求排查解决

解决MVC中Html.ActionLink报错“Value cannot be null or empty: Parameter name: linkText”

问题原因

报错核心是Html.ActionLink的第一个参数(链接显示文本)不允许为null或空字符串。你的查询结果中存在部分item.tbl_main.user_logged_in值为null或空,渲染时触发了参数校验错误;注释掉ActionLink后跳过了该参数的校验,表格因此能正常加载。

解决方案

方案1:视图层直接处理空值(推荐)

在Html.ActionLink的第一个参数中添加空值判断,为空值设置默认显示文本:

<td>@Html.ActionLink(item.tbl_main.user_logged_in ?? "查看详情", "Details", "Home", new { mainId = item.tbl_main.Id }, null)</td>

如果不需要用用户名作为链接文字,也可以直接固定显示文本:

<td>@Html.ActionLink("查看详情", "Details", "Home", new { mainId = item.tbl_main.Id }, null)</td>

方案2:控制器层预处理数据

在查询后提前处理user_logged_in的空值情况,确保传递到视图的模型中该字段不为空:

var query = from pd in _context.tbl_main
            join p in _context.tbl_saved on pd.Id equals p.mainId
            orderby p.rowid
            select new ListViewModel { tbl_main = pd, tbl_saved = p };

// 转换为列表后处理空值
var dataList = query.ToList();
foreach (var item in dataList)
{
    if (string.IsNullOrEmpty(item.tbl_main.user_logged_in))
    {
        item.tbl_main.user_logged_in = "匿名用户";
    }
}

return View(dataList);

方案3:修正数据源

如果业务规则要求user_logged_in不能为空,可以修改数据库表结构,给该字段添加非空约束,同时在数据写入环节确保不会存入空值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 21:50:11