相关疑难解决方法(0)

通过AJAX将数组传递给mvc Action

我正在尝试将通过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,以便控制器可以识别它是什么?

非常感谢您的帮助

戴夫

c# asp.net-mvc jquery

121
推荐指数
5
解决办法
15万
查看次数

使用jQuery getJson将列表/数组作为参数发送

我有以下我正在尝试将列表/数组发送到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)

然后它工作正常,所以我不认为这是一个路由问题.

asp.net-mvc jquery parameter-passing getjson url-parameters

24
推荐指数
3
解决办法
4万
查看次数

为@HtmlEditorFor设置"id"和"name"?

我正在尝试设置idnamefor @Html.EditorFor,但这不起作用:

@Html.EditorFor(model => model.value, new { @id = "testid1", @name="testname1"})
Run Code Online (Sandbox Code Playgroud)

如何设置idname

asp.net-mvc-3

11
推荐指数
3
解决办法
2万
查看次数

在MVC3中的TextBoxFor中控制名称

使用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可以做到,但我不想在视图中对该名称进行硬编码.

asp.net-mvc-3

7
推荐指数
3
解决办法
1万
查看次数

MVC2:无法用TextBoxFor更改名称?

我想手动为文本框定义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)

谢谢!

html asp.net asp.net-mvc asp.net-mvc-2 html.textboxfor

6
推荐指数
3
解决办法
6486
查看次数

使用Razor更改MVC4中html.editorfor帮助程序的id属性

我已经查看了一些与此相关的各种答案,但所有这些都是针对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是将表单绑定到模型时使用的内容.

razor asp.net-mvc-4

5
推荐指数
2
解决办法
4万
查看次数