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

如何将ASP.NET MVC Razor中TextBox的searchid值传递给ActionLink

ASP.NET MVC Razor视图中文本框值动态传递给ActionLink的实现方案

@Html.ActionLink属于服务端Razor语法,页面渲染完成时就已经固定了生成的<a>标签href属性值,用户在前端文本框输入的内容是客户端动态值,无法直接通过服务端代码传递,必须通过前端脚本动态修改链接地址,或者改用表单提交实现。

方案1:原生JavaScript动态修改链接(无依赖)

第一步修改Razor视图代码,给ActionLink添加唯一ID,同时用占位符占住id参数的位置:

<p>@Html.TextBox("searchid")</p>
<!-- 给a标签加id为editLink,id参数用占位符__searchid__代替 -->
<p>@Html.ActionLink("Edit", "Edit", new { id = "__searchid__" }, new { @class = "btn btn-primary btn-large", @id = "editLink" })</p>

第二步在视图底部添加JavaScript代码,监听文本框输入事件,动态替换链接中的占位符:

<script>
document.addEventListener('DOMContentLoaded', function() {
    const searchInput = document.getElementById('searchid');
    const editLink = document.getElementById('editLink');
    // 缓存生成的原始链接模板
    const baseHref = editLink.href.replace('__searchid__', '');

    searchInput.addEventListener('input', function() {
        const inputValue = this.value.trim();
        if (inputValue) {
            // 替换占位符为编码后的实际输入值,避免特殊字符问题
            editLink.href = baseHref + encodeURIComponent(inputValue);
        } else {
            // 无输入时禁用链接跳转
            editLink.href = 'javascript:void(0)';
        }
    });
});
</script>

方案2:表单提交实现(无需写JS)

如果不需要强制使用超链接,直接用GET表单提交实现逻辑更简单:

<!-- 第二个参数替换为你实际的控制器名称 -->
@using (Html.BeginForm("Edit", "Home", FormMethod.Get))
{
    <p>@Html.TextBox("id")</p>
    <p><button type="submit" class="btn btn-primary btn-large">Edit</button></p>
}

提交后会自动生成类似/Home/Edit?id=用户输入值的请求,只要你的Edit动作支持接收query参数形式的id即可正常使用。

方案3:jQuery实现(适用于已引入jQuery的项目)

代码更精简:

<script>
$(function() {
    const baseHref = $('#editLink').attr('href').replace('__searchid__', '');
    $('#searchid').on('input', function() {
        const val = $(this).val().trim();
        $('#editLink').attr('href', val ? baseHref + encodeURIComponent(val) : 'javascript:void(0)');
    });
});
</script>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 07:24:01