![](/img/trans.png)
[英]Url.Action Passing string array from View to Controller in MVC#
[英]Sending array from URL.Action and getting null in controller
我有一个 function,在 for 循环中添加项目后通过发送arr
参数(数组)的操作 URL 调用 controller,我看到它发送了数据,但 null 出现在 controller 参数中。 我想知道可能出了什么问题?
脚本 Function
function Submit() {
QRCodeval.forEach((code) => arr.push(code.innerHTML));
window.location.href = "@Url.Action("ReceivedFromBarCode","PurchaseOrder")?" +arr;
}
controller生成的链接:
http://localhost:56978/PurchaseOrder/ReceivedFromBarCode?JJJKP,RRPRQ,PPLQR
Controller 我在 arr 参数中得到 null。
public async Task<ActionResult> ReceivedFromBarCode(string[] arr)
{
return View();
}
MVC model 活页夹期望 arrays 以以下格式传递: arr=value1&arr=value2&...
您可以使用map()
和join()
来创建正确的格式。 但是您还需要对这些值进行编码,因为它们是 URL 中的参数encodeURIComponent
可以帮助解决这个问题:
let urlParams = array.map((val) => {
return `arr=${encodeURIComponent(val)}`
}).join('&');
window.location.href = "@Url.Action("ReceivedFromBarCode","PurchaseOrder")?"
+ urlParams;
和 append urlParams
到您的 URL。下面代码段中的示例 output:
let array = ["value1", "http://example.com?x=1", "<script>alert('')</sctipt>"]; let urlParams = array.map((val) => { return `arr=${encodeURIComponent(val)}` }).join('&'); console.log(urlParams);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.