您好 StackOverFlow 同胞,我需要INSERT
通过我用 JS 创建的动态表单在我的表中创建多个记录。
我的模型如下:
namespace MultiInsert.Models
{
public class Ejemplo
{
[Key]
public int id { get; set; }
public string objetivos { get; set; }
public string nombres { get; set; }
public decimal puntaje { get; set; }
}
}
我的看法如下:
@model MultiInsert.Models.Ejemplo
@{
ViewBag.Title = "MultiCreate";
}
<h2>MultiCreate</h2>
@using (Html.BeginForm())
{
<div class="col-xs-12">
<div class="col-md-12">
<div id="field">
<div id="field0">
<!-- Text input-->
<div class="form-group">
<label class="col-md-4 control-label" for="action_id">Objetivos</label>
<div class="col-md-5">
<input id="objetivos" name="objetivos" type="text" placeholder="" class="form-control input-md">
</div>
</div>
<br><br>
<!-- Text input-->
<div class="form-group">
<label class="col-md-4 control-label" for="action_id">Nombres</label>
<div class="col-md-5">
<input id="nombres" name="nombres" type="text" placeholder="" class="form-control input-md">
</div>
</div>
<br><br>
<!-- Text input-->
<div class="form-group">
<label class="col-md-4 control-label" for="action_name">Puntaje</label>
<div class="col-md-5">
<input id="puntaje" name="puntaje" type="text" placeholder="" class="form-control input-md">
</div>
</div>
<br><br>
</div>
</div>
<!-- Button -->
<div class="form-group">
<div class="col-md-4">
<button id="add-more" name="add-more" class="btn btn-primary">Add More</button>
</div>
</div>
<br><br>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Create" class="btn btn-default" />
</div>
</div>
</div>
</div>
}
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
我inputs
动态插入的脚本:
<script>
$(document).ready(function () {
var next = 0;
$("#add-more").click(function (e) {
e.preventDefault();
var addto = "#field" + next;
var addRemove = "#field" + (next);
next = next + 1;
var newIn = ' <div id="field' + next + '" name="field' + next + '"><!-- Text input--><div class="form-group"><label class="col-md-4 control-label" for="action_id">Objetivos</label><div class="col-md-5"><input id="objetivos" name="objetivos" type="text" placeholder="" class="form-control input-md"></div></div><br><br><!-- Text input--><div class="form-group"><label class="col-md-4 control-label" for="action_id">Nombres</label><div class="col-md-5"><input id="nombres" name="nombres" type="text" placeholder="" class="form-control input-md"></div></div><br><br><!-- Text input--><div class="form-group"><label class="col-md-4 control-label" for="action_name">Puntaje</label><div class="col-md-5"><input id="puntaje" name="puntaje" type="text" placeholder="" class="form-control input-md"></div></div><br><br></div></div></div>';
var newInput = $(newIn);
var removeBtn = '<button id="remove' + (next - 1) + '" class="btn btn-danger remove-me" >Remove</button></div></div><div id="field">';
var removeButton = $(removeBtn);
$(addto).after(newInput);
$(addRemove).after(removeButton);
$("#field" + next).attr('data-source', $(addto).attr('data-source'));
$("#count").val(next);
$('.remove-me').click(function (e) {
e.preventDefault();
var fieldNum = this.id.charAt(this.id.length - 1);
var fieldID = "#field" + fieldNum;
$(this).remove();
$(fieldID).remove();
});
});
});
</script>
最后是我的控制器的一部分:
// View MultiCreate
public ActionResult MultiCreate()
{
return View();
}
// View MultiCreate
[HttpPost]
public ActionResult MultiCreate([Bind(Include = "id,objetivos,nombres,puntaje")] Ejemplo ejemplo)
{
if (ModelState.IsValid)
{
db.Ejemploes.Add(ejemplo);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(ejemplo);
}
Foreach
我知道我必须执行一个循环INSERT
,但是我不具备在 MVC5 中执行该过程的知识。
我会继续关注任何新闻或疑问。
解决方案是下一个
在视图中,您必须设置一个循环:
在控制器
Create
中首先设置一个列表,在接收表单的列表中,需要的循环是这个至于
Script
正在做需要做的事