我有以下视图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
。
我在这里做错了怎样才能将输入控件中的文本传递给此方法?
感谢您的时间。
答案 0 :(得分:2)
在查询字符串中传递参数的默认语法是?paramName = value,因此在您的情况下,您需要将JavaScript更改为:
window.location = "@Url.Action("Upload", "Tools")" + "?fileName=" + txtVal;
或者,将参数名称更改为id,它将按预期工作(由默认的RouteConfig提供)。