我在视图中收到了一个输入文本框标签的字符串数组,但无法将其发回给控制器 我的代码看起来像这样, 省略了不必要的可读性代码
@using (Html.BeginForm("", "", FormMethod.Post, new { id = "frmCivilSurveys" }))
{
<tbody class="subcategory" id="actualmeasure">
<tr>
<td>
</td>
<td colspan="3">
<input type="button" class="k-button" value="Add" style="float: right;" id="AddNewActualMeasure" />
</td>
</tr>
</tbody>
<script>
$("#btnSubmitCivilSurvey").click(function() {
if ($("#frmCivilSurveys").valid())
{
$.ajax(
{
type: "POST",
url: "@Url.Action("CivilPostSurvey", "PostSurveyCivils")?ActivityID=" + $("#iPActivityID").val() ,
data: JSON.stringify($('#frmCivilSurveys').serializeObject()),
dataType: "json",
contentType: "application/json; charset=utf-8",
async: true,
cache: false,
success: function (data)
{
alert(data.Status);
var grid = $("#divSurveyGrid").data("kendoGrid");
grid.dataSource.read();
var win = $("#divEditSurvey").data("kendoWindow");
win.close();
}
});
}
else
{
alert($("#frmCivilSurveys").validate().errorList[0].message);
$($("#frmCivilSurveys").validate().errorList[0].element).focus();
}
return false;
});
//这是负责通过jquery
创建字符串输入文本框数组的代码var m = 1;
$("#AddNewActualMeasure").click(function () {
$("#actualmeasure").append(' <tr> <td>Measure ' + m + ' </td><td>C/W<input type="text" id="CWActualMeasure[' + m + ']" name="CWActualMeasure[' + m + ']"/></td> <td >F/W <input type="text" id="FWActualMeasure[' + m + ']" name="FWActualMeasure[' + m + ']"/></td> </tr>'); //add input box
m++;
});
</script>
}
我的控制器方法看起来像这样
[HttpPost]
public ActionResult CivilPostSurvey(CivilsPostSurveyViewModel modelData, int ActivityID, string[] CWMeasure,string[] FWMeasure,string[] CWActualMeasure,string[] FWActualMeasure,FormCollection fc)
{
// save data
return null;//data saved message
}
任何帮助将不胜感激
答案 0 :(得分:0)
我看到一些语法错误(双==
和缺少空格)
$("#actualmeasure").append(' <tr> <td>Measure ' + m + ' </td><td>C/W<input type="text"id=="CWActualMeasure[' + m + ']" name="CWActualMeasure[' + m + ']"/></td> <td >F/W <input type="text" id=="FWActualMeasure[' + m + ']" name="FWActualMeasure[' + m + ']"/></td> </tr>');
应该是
$("#actualmeasure").append(' <tr> <td>Measure ' + m + ' </td><td>C/W<input type="text" id="CWActualMeasure[' + m + ']" name="CWActualMeasure[' + m + ']"/></td> <td >F/W <input type="text" id="FWActualMeasure[' + m + ']" name="FWActualMeasure[' + m + ']"/></td> </tr>');
<强>更新强>
尝试将tbody
标记更改为table
标记
我认为另一个问题应该是[]
的id。
使用双反斜杠"string\\['test'\\]"
不需要转义序列来纠正错误,因为索引中的问题不是语法
答案 1 :(得分:0)
您好Stephen编辑建议从0开始索引解决了我的问题。非常感谢