C# 将对象的动态列表从视图发布到控制器
我正在写一个页面,允许用户在三天内输入测试坑的结果。 至少有两个试坑,最多有十个试坑 我最初在视图中放置了两个坑,并提供了添加和删除按钮,允许用户添加更多坑。 看起来是这样的: 我使用此javascript添加更多坑:C# 将对象的动态列表从视图发布到控制器,c#,asp.net,asp.net-mvc,model-view-controller,razor,C#,Asp.net,Asp.net Mvc,Model View Controller,Razor,我正在写一个页面,允许用户在三天内输入测试坑的结果。 至少有两个试坑,最多有十个试坑 我最初在视图中放置了两个坑,并提供了添加和删除按钮,允许用户添加更多坑。 看起来是这样的: 我使用此javascript添加更多坑: var maxPits = 10; var minPits = 2; var wrapper = $(".pits"); var addButton = $(".addPit"); var delButton = $(".delPi
var maxPits = 10;
var minPits = 2;
var wrapper = $(".pits");
var addButton = $(".addPit");
var delButton = $(".delPit");
var x = 2;
$(addButton).click(function (e) {
e.preventDefault();
if (x < maxPits) {
x++;
$(wrapper).append('<div class="row pit' + x + '"><div class="col-sm-1">Pit ' + x + '</div><div class="col-sm-3"><input type="number" placeholder="1.234" name="pit' + x + 'day1" id="pit' + x + 'day1"></div><div class="col-sm-3"><input type="number" placeholder="1.234" name="pit' + x + 'day2" id="pit' + x + 'day2"></div><div class="col-sm-3"><input type="number" placeholder="1.234" name="pit' + x + 'day3" id="pit' + x + 'day3"></div></div>');
updatePitCount();
} else {
alert('too many pits!');
}
});
$(delButton).click(function (e) {
e.preventDefault();
if (x > minPits) {
var lastPit = '.pit' + x;
$("div").remove(lastPit);
x--;
updatePitCount();
} else {
alert('must have a minimum of two!');
}
});
如何通过模型将视图中的动态数据导入控制器
任何帮助都将不胜感激。Razor在将值表单视图传递给操作时使用了name属性的空间格式 例如: 如果你路过
public class ResultsModel
{
public List<Pit> Pits { get; set; }
}
List<Pit>
那么一个
如果您使用razor生成项目列表,还有一件事是使用for
循环,而不是foreach
如果你路过
public class ResultsModel
{
public List<Pit> Pits { get; set; }
}
List<Pit>
列表
进入视图并接收相同的数据,则您的名称属性格式必须类似于
[0]。第1天
您必须通过表单标记将数据发布到操作
<form method="post" action="/Pit/Create">
<div class="row">
<div class="col-sm-1">
Pit 1
</div>
<div class="col-sm-3">
<input type="number" placeholder="1.234" name="[0].Day1" />
</div>
<div class="col-sm-3">
<input type="number" placeholder="1.234" name="[0].Day2" />
</div>
<div class="col-sm-3">
<input type="number" placeholder="1.234" name="[0].Day3" />
</div>
</div>
<div class="row">
<div class="col-sm-1">
Pit 2
</div>
<div class="col-sm-3">
<input type="number" placeholder="1.234" name="[1].Day1">
</div>
<div class="col-sm-3">
<input type="number" placeholder="1.234" name="[1].Day2">
</div>
<div class="col-sm-3">
<input type="number" placeholder="1.234" name="[1].Day3">
</div>
</div>
</form>
坑1
坑2
你好,谢谢你。我按照您的建议更改了代码,因此我的控制器代码变成:for(int I=0;I
我还按照您的建议更改了html,所有值现在都传递给controller.Hi。这是一个局部视图,表单是在主视图页面中指定的HI.ok。您不需要表单标记。您只需要在控制器中更正绑定的命名。
List<Pit>
<form method="post" action="/Pit/Create">
<div class="row">
<div class="col-sm-1">
Pit 1
</div>
<div class="col-sm-3">
<input type="number" placeholder="1.234" name="[0].Day1" />
</div>
<div class="col-sm-3">
<input type="number" placeholder="1.234" name="[0].Day2" />
</div>
<div class="col-sm-3">
<input type="number" placeholder="1.234" name="[0].Day3" />
</div>
</div>
<div class="row">
<div class="col-sm-1">
Pit 2
</div>
<div class="col-sm-3">
<input type="number" placeholder="1.234" name="[1].Day1">
</div>
<div class="col-sm-3">
<input type="number" placeholder="1.234" name="[1].Day2">
</div>
<div class="col-sm-3">
<input type="number" placeholder="1.234" name="[1].Day3">
</div>
</div>
</form>