Javascript 如何将表内容发送到控制器
我在将表全局从视图发送到控制器时遇到问题。控制器中的表已满,但控制器中的表对表的组成部分影响null 这是控制器方法:Javascript 如何将表内容发送到控制器,javascript,asp.net,Javascript,Asp.net,我在将表全局从视图发送到控制器时遇到问题。控制器中的表已满,但控制器中的表对表的组成部分影响null 这是控制器方法: public Boolean ajoutermodule(string nom, modules[] global, int cv) { return true; } 这是视图和方法ajax,我是如何附加我的表全局的,以及我是如何将这个表全局从视图发送到控制器的: function Addmodule() { var nom = $("#nomproj
public Boolean ajoutermodule(string nom, modules[] global, int cv)
{
return true;
}
这是视图和方法ajax,我是如何附加我的表全局的,以及我是如何将这个表全局从视图发送到控制器的:
function Addmodule() {
var nom = $("#nomprojet_I").val();
var cv = global.length;
$.ajax({
url: "/Module/ajoutermodule",
type: "POST",
dataType: 'json',
data: {
"nom": nom,
"global": global,
"cv": cv,
},
success: function (responseText) {
debugger;
if (responseText == "True") {
alert("Succes");
}
else {
alert("error");
}
}
});
}
var global = [];
function OnGetSelectedFieldValues(s, e) {
var SelectedUsers = $("#teamlist_I").val() + " " + $("#teamid_I").val();
listbox.AddItem(SelectedUsers);
var nom = $("#teamlist_I").val();
var id = $("#teamid_I").val();
global.push({ "id": id, "nom": nom });
debugger;
}
当我添加长度时,它会将他正确地发送到控制器。请为ASP.NET MVC尝试此代码- View.cshtml
<table id="StepsTable">
<tr>
<td>Step 1</td>
<td>@Html.TextBox("step1")</td>
</tr>
<tr>
<td>Step 2</td>
<td>@Html.TextBox("step2")</td>
</tr>
<tr>
<td>Step 3</td>
<td>@Html.TextBox("step3")</td>
</tr>
</table>
<input id="SendToControllerButton" type="button" value="Send to the server"/>
<script>
$(document).ready(function () {
$("#SendToControllerButton").click(function () {
var data = {};
//Collects the data from textboxes and adds it to the dictionary
$("#StepsTable tr").each(function (index, item) {
var tds = $(this).find("td");
var textBoxTitle = $(tds).eq(0).text();
var textboxValue = $(tds).eq(1).find("input").val();
data["stepsDictionary[" + index + "].Key"] = textBoxTitle;
data["stepsDictionary[" + index + "].Value"] = textboxValue;
});
//Makes ajax call to controller
$.ajax({
type: "POST",
data: data,
url: "/Home/ProcessStepsValues",
success: function (message) {
alert(message);
}
});
});
});
</script>
第一步
@Html.TextBox(“步骤1”)
步骤2
@Html.TextBox(“步骤2”)
步骤3
@Html.TextBox(“步骤3”)
$(文档).ready(函数(){
$(“#发送到控制器按钮”)。单击(函数(){
变量数据={};
//从文本框收集数据并将其添加到字典
$(“StepsTable tr”)。每个(功能(索引,项目){
var tds=$(this.find(“td”);
var textBoxTitle=$(tds).eq(0).text();
var textboxValue=$(tds).eq(1).find(“input”).val();
数据[“stepsDictionary[”+索引+“].Key”]=textBoxTitle;
数据[“stepsDictionary[”+索引+“].Value”]=textboxValue;
});
//对控制器进行ajax调用
$.ajax({
类型:“POST”,
数据:数据,
url:“/Home/processstepsvalue”,
成功:功能(消息){
警报(信息);
}
});
});
});
然后将数据发送到控制器
控制器.cs
[HttpPost]
public string ProcessStepsValues(Dictionary<string, string> stepsDictionary)
{
string resultMessage = string.Empty;
if (stepsDictionary != null)
{
resultMessage = "Dictionary data passes to controller successfully!";
}
else
{
resultMessage = "Something goes wrong, dictionary is NULL!";
}
return resultMessage;
}
[HttpPost]
公共字符串处理步骤值(字典步骤字典)
{
string resultMessage=string.Empty;
如果(stepsDictionary!=null)
{
resultMessage=“字典数据成功传递到控制器!”;
}
其他的
{
resultMessage=“出现问题,字典为空!”;
}
返回结果消息;
}
有关更多详细信息,请访问网站但是您的控制器的方法如下: 公共布尔值ajoutermodule(字符串名、字符串s、int-cv) { 返回true; } 并将其添加到ajax方法中
var s=JSON.stringify(全局)代码>
它将在卡拉起作用不要做var nom=$(“#nomprojet_I”).val()之类的事情代码>,这就是jQuery的工作方式,您不应该这样做。您应该将值保留在模型($scope)中,并严格使用DOM作为视图,并且永远不要从DOM中读取。我在设计中使用dev express,当我想要恢复任何文本框的内容时,我使用$(“#nomprojet_i”).val();问题是methode ajax中的表内容是正确的,但是当我将此内容发送给method controller时,它将其发送为null,我认为这个问题serialisationthinks需要您的帮助
function Addmodule() {
var nom = $("#nomprojet_I").val();
var s = JSON.stringify(global);
var cv = global.length;
$.ajax({
url: "/Module/ajoutermodule",
type: "POST",
dataType: 'json',
data: {
"nom": nom,
"s": s,
"cv": cv,
},
success: function (responseText) {
debugger;
if (responseText == "True") {
alert("Succes");
}
else {
alert("error");
}
}
});
}