Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 按钮单击事件未将输入字符串传递给MVC控制器方法_Javascript_Asp.net Mvc - Fatal编程技术网

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

Javascript 按钮单击事件未将输入字符串传递给MVC控制器方法,javascript,asp.net-mvc,Javascript,Asp.net Mvc,我有以下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(); w

我有以下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>

$(“#按钮”)。单击(函数(){
var txtVal=$(“#txt”).val();
window.location=“@Url.Action(“上传”、“工具”)”+“/”+txtVal;
});
我的控制器方法是

[AllowAnonymous]
public async Task<ActionResult> Upload(string fileName)
{
    string path = @"C:\GambitTests\blue-g-logo.jpg";
    // Do stuff.
    return RedirectToAction("Index", "Tools");
}
[AllowAnonymous]
公共异步任务上载(字符串文件名)
{
字符串路径=@“C:\GambitTests\blue-g-logo.jpg”;
//做事。
返回重定向操作(“索引”、“工具”);
}
此方法激发,但我没有从输入框中获取文本,
fileName
null

我做错了什么?如何将文本从输入控件传递到此方法?


谢谢您的时间。

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

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

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

这假定您有路由“{controller}/{action}/{fileName}”。你…吗?如果您不这样做,您可以定义一个,或者更好地使用
“@Url.Action(“上传”,“工具”)”+“?fileName=“+txtVal
非常感谢。非常感谢。我喜欢使用
id
的声音,但我对JQuery不熟悉,所以您可以详细说明一下吗?您所要做的就是将控制器中的方法签名更改为公共异步任务上载(字符串id)。由于某种原因,这不起作用。我仍在使用id或文件名将null传递给控制器方法?您需要删除前导正斜杠-…`+“?文件名=“+txtVal`