c# - 如何使用输入模型发送数据?

标签 c# asp.net asp.net-mvc

我有一个填充字段的界面,你可以在其中添加和删除字段:

<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/

相关文章:

c# - 动态创建数组并设置元素

javascript - 如何在aspx页面中的repeater ItemDataBound函数中传递Control.ClientID?

c# - 我可以在一个 asp.net 项目的两个不同的 Web 配置中有两个连接字符串吗

c# - 带验证的 MVC 自定义路由

c# - 我的 ASP.NET MVC 应用程序中的 Quartz Scheduler 仅在 IIS 服务器上刷新网页/应用程序后才执行作业

jquery - 带有 Bootstrap Menu Left not collapse 选项的 Asp.net Mvc 4

c# - 标有 TestInitialize 和 TestCleanup 的类未执行

c# - 双重使用 C# 迭代器工作意外

c# - ASP.NET:如何将文件从数据库发送到打印机?

c# - 在 asp.net 后面的代码中更改 CSS