我正在尝试将通过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)
然后它工作正常,所以我不认为这是一个路由问题.
我正在尝试设置id和namefor @Html.EditorFor,但这不起作用:
@Html.EditorFor(model => model.value, new { @id = "testid1", @name="testname1"})
Run Code Online (Sandbox Code Playgroud)
如何设置id和name?
使用TextBoxFor时是否可以控制文本boxt的name属性?
视图中的此代码
@Html.TextBoxFor(m => m.SearchParams.someParam)
Run Code Online (Sandbox Code Playgroud)
产生这个
<input id="SearchParams_someParam" name="SearchParams.someParam" type="text" value="">
Run Code Online (Sandbox Code Playgroud)
但我不希望我的输入名称是"SearchParams.someParam",我希望它是类似的
<input id="SearchParams_someParam" name="MyPreferedName" type="text" value="">
Run Code Online (Sandbox Code Playgroud)
其中MyPreferedName来自相应模型中的.SearchParams.someParam的某些属性.
这可能吗?我知道@ Html.TextBox可以做到,但我不想在视图中对该名称进行硬编码.
我想手动为文本框定义id和名称:
<%: Html.TextBoxFor(model => model.Name, new { @id = "txt1", @name = "txt1" })%>
Run Code Online (Sandbox Code Playgroud)
但只有id被更改,而不是name属性,为什么?
<input id="txt1" name="Name" type="text" value="">
Run Code Online (Sandbox Code Playgroud)
谢谢!
我已经查看了一些与此相关的各种答案,但所有这些都是针对mzc3而不是针对Razor.
我有一个页面,在部分视图中有多个表单,用于编辑不同的模型.但是,大多数模型都有一个"名称"字段.我希望能够指定具有特定ID的编辑器:
<div class="editor-label">
@Html.LabelFor(model => model.Name)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Name, new {id = "PersonName"})
@Html.ValidationMessageFor(model => model.Name)
</div>
Run Code Online (Sandbox Code Playgroud)
我尝试了其他各种各样的东西,但没有找到一个满意的方法来处理这个问题.我似乎有两个选择:
1)使用普通的html助手手动创建表单,并在控制器中构建模型
2)重命名模型中的所有字段以适合格式
这些都不令我兴奋所以我希望有一个替代方案,但我担心id是将表单绑定到模型时使用的内容.