能提交给Controller的只有form中的input url Cookies
所以你可以考虑怎么在input中下功夫~
比如可以
<input name="listID" value="ID1;ID2;ID3">FormCollection["listID"].split(';')
.....
....
....
所以你可以考虑怎么在input中下功夫~
比如可以
<input name="listID" value="ID1;ID2;ID3">FormCollection["listID"].split(';')
.....
....
....
http://www.cnblogs.com/insus/p/3378016.html
int index = 1;
var tablename = "tabEditPlan" + typeId;
var fname = "";
var datename = "";
var aname = "";
var rename = "";
<script type="text/javascript">
function addnewplan1() {
var table = document.getElementById("tabEditPlan" + Number(@typeId));
var newindex = table.rows.length;
var tr = table.insertRow();
var td0 = tr.insertCell(0);
td0.innerHTML = newindex;
var td1 = tr.insertCell(1);
td1.innerHTML = '<input name="fname' + newindex + "_" + @typeId+'" type="text" class="input_class">';
var td2 = tr.insertCell(2);
td2.innerHTML = '<input name="amount' + newindex + "_" + @typeId + '" type="text" class="input_class" style="width:35px">';
var td3 = tr.insertCell(3);
td3.innerHTML = '<input name="subdate' + newindex + "_" + @typeId + '" type="text" onclick="WdatePicker();" class="Wdate">';
var td4 = tr.insertCell(4);
td4.innerHTML = '<input name="rename' + newindex + "_" + @typeId + '" type="text" class="input_class">';
var td5 = tr.insertCell(5);
td5.innerHTML = '<img src="/images/cancel.gif" style="cursor:pointer;" onclick="delplan1(' + newindex + ')" alt="删除" />'; td0.style["textAlign"] = "center";
td1.style["textAlign"] = "center";
td2.style["textAlign"] = "center";
td3.style["textAlign"] = "center";
td4.style["textAlign"] = "center";
td5.style["textAlign"] = "center";
}
function delplan1(index) {
var table = document.getElementById("tabEditPlan" + Number(@typeId));
table.deleteRow(index); for (i = 1; i < table.rows.length; i++) {
table.rows[i].cells[0].innerHTML = i.toString();
table.rows[i].cells[5].innerHTML = '<img src="/images/cancel.gif" style="cursor:pointer;" onclick="delplan1(' + i + ')" />';
} }
</script>
<table id="@tablename" style="width:760px">
<tr>
<td style="text-align:center;width:40px"><b>序号</b></td>
<td style="text-align:center;width:25%"><b>资料及文件名称</b></td>
<td style="text-align:center;width:8%"><b>份数</b></td>
<td style="text-align:center;width:15%"><b>提交日期</b></td>
<td style="text-align:center;width:30%"><b>备注</b></td>
<td style="text-align:center;"><a onclick="addnewplan1();" style="cursor:pointer;"><img src="/images/add.gif" alt="添加" /></a></td>
</tr>
@if (planlist.Count == 0)
{
fname = "fname" + index + "_" + typeId;
aname = "amount" + index + "_" + typeId;
datename = "subdate" + index + "_" + typeId;
rename = "re" + index + "_" + typeId;
<tr>
<td style="text-align:center">@index</td>
<td style="text-align:center"><input class="input_class" name="@fname" type="text" " ></td>
<td style="text-align:center"><input name="@aname" type="text" " style="width:35px" class="input_class"></td>
<td style="text-align:center"><input name="@datename" type="text" readonly="true" onclick="WdatePicker();" class="Wdate"></td>
<td style="text-align:center"><input name="@rename" type="text" class="input_class" ></td>
<td style="text-align:center"><img src="/images/cancel.gif" style="cursor:pointer;" alt="删除" title="2" onclick="delplan1('@index')"/></td>
</tr>
}
@{
//int idefaultAmountTotal = 6;
foreach (var item in planlist)
{
fname = "fname" + index + "_" + typeId;
aname = "amount" + index + "_" + typeId;
datename = "subdate" + index + "_" + typeId;
rename = "re" + index + "_" + typeId;
<tr>
<td style="text-align:center">@index</td>
<td style="text-align:center"> <input class="input_class" name="@fname" type="text" value="@item.FileName" ></td>
<td style="text-align:center"><input name="@aname" type="text" value="@item.Amount" class="input_class" style="width:35px"></td>
<td style="text-align:center"><input name="@datename" type="text" readonly="true" value="@(item.SubDate == null || item.SubDate == "" ? "" : Convert.ToDateTime(item.SubDate).ToShortDateString())" onclick="WdatePicker();" class="Wdate"></td>
<td style="text-align:center"><input name="@rename" type="text" value="@item.Re" class="input_class" ></td>
<td style="text-align:center"><img src="/images/cancel.gif" style="cursor:pointer;" alt="删除" title="2" onclick="delplan1('@index')"/></td>
</tr>
index = index + 1;
}
fname = "fname" + index + "_" + typeId;
aname = "amount" + index + "_" + typeId;
datename = "subdate" + index + "_" + typeId;
rename = "re" + index + "_" + typeId;
}
</table>把这个代码看成一个页面。当每个文本框都有不同的ID了,可是唯一的区别就是加了一个变量名而已。你的问题就迎刃而解。后台取值方法。
(假设有30条数据,你可以在js里面保存一共有多少条数据)
for (int i = 0; i < 30; i++)
{
string Pfirst = "Pfirst" + (i + 1).ToString();
string bili = "bili" + (i + 1).ToString();
string fufeie = "Pfirst" + (i + 1).ToString();
string shijian = "bili" + (i + 1).ToString();
if (!string.IsNullOrEmpty(Request[Pfirst]))
{
DrawProjectPlanInfo fileinfo = new DrawProjectPlanInfo();
fileinfo.DrawUpContractId = id;
fileinfo.Pfirst = Request[Pfirst];
fileinfo.bili = Request[bili];
fileinfo.fufeie = Request[fufeie];
fileinfo.shijian = Request[shijian];
fileinfo.DrawUpContractId = model.DrawUpContractId;
DrawProjectPlanManager.Add(fileinfo);
}
}
有的时候会有的时候就不会,不知道为什么、、、以前碰到过 这个映射一个list 话 控件的name是有规律的,细心点就可以发现的
第一行 <input name="[0].ProductID" />
第2行 <input name="[1].ProductID" />
第3行 <input name="[2].ProductID" />提交下试试
有的时候会有的时候就不会,不知道为什么、、、以前碰到过 这个映射一个list 话 控件的name是有规律的,细心点就可以发现的
我知道和生成的name有关,但是我用的是@html.出来的东东,有时候不生成Name等属性
不管你怎么写吧,前台拼接一个你要处理的所有数据的json 串,ajax发送后台接受处理,返回一个json结果,方便前端提示,或弹错前台cshtml
var y=[1,2,3];// js直接操作获取你要修改产品ID,假设这里是1,2,3
//拼接json数据
var jsonstr = GetJson(ids); function GetJson(ids)
{
var jsonstr = '[';
var bsku;
for (var i = 0; i < ids.length; i++) {
jsonstr += '{';
jsonstr += "'id':'" + id+ "',";
jsonstr += '}'
jsonstr += ',' }
jsonstr = jsonstr.substring(0, jsonstr.length - 1);
jsonstr += ']';
return jsonstr
}
//ajax发送json,请求后台处理
$.post("/Print/HandleJson", { jsons: jsonstr }, function (js) {
var jsonData = eval("(" + js + ")");//还可以接受后台返回的json结果 });
//Control 控制器 写个接收方法
public JsonResult HandleJson(FormCollection c)
{
string strjson = c["jsons"];
JArray ja = (JArray)JsonConvert.DeserializeObject(strjson);//获取前台json数据
int s_id=0;
foreach(JObject jb in ja)
{
s_id = Convert.ToInt32(jb["id"].ToString()); //得到id 做你的修改动作
} }