我有一个填充字段的界面,你可以在其中添加和删除字段:
<form role="form" class="form-horizontal">
<div class="form-group bg-light text-center pt-3 pb-3">
<b><h3>Create Form</h3></b>
</div>
<div class="form-group">
<input type="text" class="form-control" placeholder="HeadField">
</div>
<div class="form-group">
<textarea class="form-control" rows="5" placeholder="Description Field"></textarea><br>
</div>
<h5>Fields:</h5><br>
<div class="border border-secondary rounded p-3" id="container">
<div class="field">
<div class="form-row">
<div class="form-group col-md-5">
<input class="form-control form-control-inline" placeholder="Head of field">
</div>
<select class="selectBox form-control col-md-6 ml-4" onchange="addElement(this);">
<option value='textarea'>Typefield1</option>
<option value='textarea'>Typefield2</option>
<option value='textarea'>Typefield3</option>
<option value='input'>Typefield4</option>
<option value='input'>Typefield5</option>
</select>
<div class="form-group">
<input type="button" class="btn btn-default btn-xs col-md-1 ml-3" value="X" onclick="removeField(this);"><br>
</div>
</div>
<div class='content'>
</div>
<div class="form-group">
<div class="form-check text-right">
<input class="form-check-input" type="checkbox" required/>Require<br>
</div>
</div>
</div>
</div>
<div class="form-group text-right mt-3">
<input type="button" class="btn btn-success" value="addField" onclick="addField(this);"><br><br>
</div>
<div class="form-group mb-3">
<input type="submit" class="btn btn-success" value="Save">
<input type="button" class="btn btn-danger" value="Close">
</div>
</form>
我需要使用输入模型向 Controller 发送数据:
[HttpPost]
public ActionResult EditForm(Model model)
{
//fill model in BD using Linq or ather...do something
}
在我的案例中,输入模型应该是什么样的?不确定,像这样被称为模型绑定(bind),但我是 asp net mvc 的新手。 添加字段:
function addField(btn) {
var form = btn.closest("form");
if (form) {
var div = form.querySelector(".field");
if (div) {
var divCreated = document.createElement("div");
divCreated.className = div.className;
divCreated.innerHTML = div.innerHTML;
document.getElementById('container').appendChild(divCreated);
}
}
}
函数 addElement() 在 div 中添加 id="content"的元素。
最佳答案
因为我们不知道你的模型,这是一个如何使用
public class PersonModel {
public int PersonId { get; set; } public string Name { get; set; } public string Gender { get; set; } public string City { get; set; } }
然后在您的 View 中执行以下操作
@model Form_Post_MVC.Models.PersonModel
@{ Layout = null; }
Blockquote
<meta name="viewport" content="width=device-width"/> <title>Index</title> </head> <body> @using (Html.BeginForm("Index", "Home", FormMethod.Post)) { <table cellpadding="0" cellspacing="0"> <tr> <th colspan="2" align="center">Person Details</th> </tr> <tr> <td>PersonId: </td> <td> @Html.TextBoxFor(m => m.PersonId) </td> </tr> <tr> <td>Name: </td> <td> @Html.TextBoxFor(m => m.Name) </td> </tr> <tr> <td>Gender: </td> <td> @Html.DropDownListFor(m => m.Gender, new List<SelectListItem> { new SelectListItem{Text="Male", Value="M"}, new SelectListItem{Text="Female", Value="F"}}, "Please select") </td> </tr> <tr> <td>City: </td> <td> @Html.TextBoxFor(m => m.City) </td> </tr> <tr> <td></td> <td><input type="submit" value="Submit"/></td> </tr> </table> } </body> </html>
您的 HTML 控件与模型中的名称匹配,并且您使用的是 Post, Controller 必须按预期接收数据
关于c# - 如何使用输入模型发送数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54698647/