按钮单击事件未将输入字符串传递给 MVC 控制器方法

Button Click Event not Passing input String to MVC Controller Method

本文关键字:MVC 控制器 方法 字符串 事件 单击 输入 按钮      更新时间:2023-09-26

我有以下视图HTML

<input id="txt" type="text">
<button class="btn btn-primary" id="button">Upload</button>

和脚本

<script type="text/javascript">
    $("#button").click(function () {
        var txtVal = $("#txt").val();
        window.location = "@Url.Action("Upload", "Tools")" + "/" + txtVal;
    });
</script>

我的控制器方法是

[AllowAnonymous]
public async Task<ActionResult> Upload(string fileName)
{
    string path = @"C:'GambitTests'blue-g-logo.jpg";
    // Do stuff.
    return RedirectToAction("Index", "Tools");
}

此方法触发,但我没有从输入框中获取文本,fileName null.

我在这里做错了什么,如何将文本从输入控件传递给此方法?

谢谢你的时间。

在查询字符串中传递参数的默认语法是 ?paramName=value,因此在您的情况下,您需要将 JavaScript 更改为:

window.location = "@Url.Action("Upload", "Tools")" + "?fileName=" + txtVal;

或者,将参数名称更改为 id,它将按预期工作(由默认 RouteConfig 提供)。