我正在尝试选择name属性中带方括号的元素:
<input type="text" name="inputName[]" value="someValue">
Run Code Online (Sandbox Code Playgroud)
我试过这个(这不起作用):
$('input[inputName[]=someValue]')
Run Code Online (Sandbox Code Playgroud)
这两个都没有:
$('input[inputName[]=someValue]')
Run Code Online (Sandbox Code Playgroud)
或这个:
$('input["inputName[]"=someValue]')
Run Code Online (Sandbox Code Playgroud)
编辑:正如你们有些人指出的那样,$('input[inputName=someValue]')永远不会奏效.我想做的是:$('input[name=inputName][value=someValue]').(但[]在name属性中).
我正在尝试将通过AJAX的int(或IEnumerable)数组传递给MVC操作,我需要一些帮助.
javascript是
$.get('/controller/MyAction', { vals: arrayOfValues }, function (data) {...
Run Code Online (Sandbox Code Playgroud)
并且控制器动作是
public ActionResult MyAction(IEnumerable<int> arrayOfValues )
Run Code Online (Sandbox Code Playgroud)
目前请求的格式为
controller/MyAction?_=1301503418429&arrayOfValues[]=491&arrayOfValues[]=368&arrayOfValues[]=235&arrayOfValues[]=437
Run Code Online (Sandbox Code Playgroud)
所以我几乎就在那里,如果我取下方括号,我会得到正确的答案.我应该如何将该数组传递给我的get,以便控制器可以识别它是什么?
非常感谢您的帮助
戴夫
我有以下我正在尝试将列表/数组发送到MVC控制器方法:
var id = [];
var inStock = [];
$table.find('tbody>tr').each(function() {
id.push($(this).find('.id').text());
inStock.push($(this).find('.stocked').attr('checked'));
});
var params = {};
params.ids = id;
params.stocked = inStock;
$.getJSON('MyApp/UpdateStockList', params, function() {
alert('finished');
});
Run Code Online (Sandbox Code Playgroud)
在我的控制器中:
public JsonResult UpdateStockList(int[] ids, bool[] stocked) { }
Run Code Online (Sandbox Code Playgroud)
两个参数都是空的.
请注意,如果我将参数更改为单个项目
params.ids = 1;
params.stocked = true;
public JsonResult UpdateStockList(int ids, bool stocked) { }
Run Code Online (Sandbox Code Playgroud)
然后它工作正常,所以我不认为这是一个路由问题.