构造JavaScript字符串列表并将其传递给ASP.NET MVC控制器操作(不使用ajax)

构造JavaScript字符串列表并将其传递给ASP.NET MVC控制器操作(不使用ajax),javascript,asp.net-mvc,Javascript,Asp.net Mvc,如何在JavaScript中构造字符串列表并将其传递到window.location,使其在围栏的C#侧显示为list (不使用Ajax POST,而是使用window.location) ASP.NET MVC控制器操作示例: public FileResult GetMyCsvFile(List<string> columnNames) { ... } 试一试 例如,创建标记并给它一个id @Html.ActionLink("Click me", "Test", "Tas

如何在JavaScript中构造字符串列表并将其传递到
window.location
,使其在围栏的C#侧显示为
list
(不使用Ajax POST,而是使用
window.location

ASP.NET MVC控制器操作示例:

public FileResult GetMyCsvFile(List<string> columnNames)
{
  ...
}
试一试

例如,创建
标记并给它一个id

 @Html.ActionLink("Click me", "Test", "Task", null, new { id = "myLink" })
然后在脚本中(注意,我使用jquery,因为这是您在问题中使用的)

如果它是一个可变的值列表,则需要在循环中构造url,如

for (var i = 0; i < myValues.length; i++) {
  if (i === 0) {
    path += '?columnNames=' + myValues[i];
  } else {
    path += '&columnNames=' + myValues[i];
  }
}
for(var i=0;i
有趣的想法。您能展示一下如何构造查询字符串的JavaScript代码吗?谢谢好的,那可能行得通,而且是直截了当的。我不确定在JS中是否有一种聪明的方法可以获取
myValues
并将其投影到查询字符串(而不是通过循环构建字符串)。再次感谢。我将把这个标记为答案。。。除非有更好的主意出现。:)
 @Html.ActionLink("Click me", "Test", "Task", null, new { id = "myLink" })
$('#myLink').click(function (e) {
  e.preventDefault();
  // Define the values to pass to the controller
  var firstCol = 'value1';
  var secondCol = 'value2';
  // Construct url with query string
  var path = $(this).attr('href');
  path += '?columnNames=' + firstCol + '&columnNames=' + secondCol;
  // Navigate to the view
  window.location = path;
});
for (var i = 0; i < myValues.length; i++) {
  if (i === 0) {
    path += '?columnNames=' + myValues[i];
  } else {
    path += '&columnNames=' + myValues[i];
  }
}