【发布时间】:2015-05-18 13:49:44
【问题描述】:
我有一个控制器,它获取一个模型作为参数,但该模型有另一个模型的集合。其他参数可以简单地使用表单发送,但模型的输入字段是动态的,因此您可以使用 javascript 或 jQuery 添加它们。
所以我不知道的是,如何使用 javascript 从输入中收集模型并将它们发送到控制器。
这就是我的视图
<div>
<div class="row">
<div class="col-xs-4 col-sm-6 ">
<div class="dropdown volledigeLengte verplicht-ruimte">
<button class="form-control btn btn-default dropdown-toggle @dis" data-toggle="dropdown">
verplichte velden toevoegen<i class="glyphicon glyphicon-chevron-down"></i>
</button>
<ul class="dropdown-menu volledigeLengte">
<li><a href="#" class="text">Text <i class="glyphicon glyphicon-plus "></i></a>
<li><a href="#" class="foto">Foto <i class="glyphicon glyphicon-plus "></i></a>
<li><a href="#" class="kaart">Kaart <i class="glyphicon glyphicon-plus "></i></a>
<li><a href="#" class="video">Video <i class="glyphicon glyphicon-plus "></i></a>
</ul>
</div>
<div class="marging-top-voor-fields extraRuimtesVerplicht">
</div>
</div>
<div class="col-xs-4 col-sm-6 ">
<div class="dropdown volledigeLengte niet-verplicht-ruimte">
<button class="form-control btn btn-default dropdown-toggle @dis" data-toggle="dropdown">
Niet verplichte velden toevoegen <i class="glyphicon glyphicon-chevron-down"></i>
</button>
<ul class="dropdown-menu volledigeLengte">
<li><a href="#" class="text">Text <i class="glyphicon glyphicon-plus "></i></a>
<li><a href="#" class="foto">Foto <i class="glyphicon glyphicon-plus "></i></a>
<li><a href="#" class="kaart">Kaart <i class="glyphicon glyphicon-plus "></i></a>
<li><a href="#" class="video">Video <i class="glyphicon glyphicon-plus "></i></a>
</ul>
</div>
<div class="extraRuimtesNietVerplicht marging-top-voor-fields">
</div>
</div>
</div>
</div>
这就是我的 javascript 的样子
(function ($) {
$(function () {
var aantalVerplicht = 0;
var aantalNietVerplicht = 0;
var matrix = [];
for (var i = 0; i < 9; i++) {
matrix[i] = [];
for (var j = 0; j < 9; j++) {
matrix[j] = new Array(9);
}
}
var extra;
var addRuimte = function (e, type) {
extra = null;
if ($(this).parents('div').hasClass("verplicht-ruimte")) {
extra = $(".extraRuimtesVerplicht");
}
if ($(this).parents('div').hasClass("niet-verplicht-ruimte")) {
extra = $(".extraRuimtesNietVerplicht");
}
if (extra != null) {
$(extra).append('<div id="maring-top-voor-fields"><input class="col-sm-10 form-control" placeholder="Geef de vraag" /><span class="input-group-btn remove_ruimte"><button class ="col-sm-2 form-control btn btn-danger "><i class="glyphicon glyphicon-minus"></i></button></span></div>');
}
};
var removeRuimte = function (e) {
e.preventDefault();
$(this).parent('div').remove();
i--;
};
$(document).on('click', '.text', addRuimte("text"));
$(document).on('click', '.foto', addRuimte("foto"));
$(document).on('click', '.kaart', addRuimte("kaart"));
$(document).on('click', '.video', addRuimte("video"));
$('.extraRuimtesVerplicht').on('click', '.remove_ruimte', removeRuimte);
$('.extraRuimtesNietVerplicht').on('click', '.remove_ruimte', removeRuimte);
});
})(jQuery);
就是这个样子
【问题讨论】:
-
如果在视图中为多个表单元素赋予相同的名称属性,它们将在控制器中以字符串数组的形式出现。示例: 在控制器中: icase[0] = 1 icase[1] = 2
标签: javascript c# jquery asp.net-mvc razor-2