如何为具有一对多关系的模态添加文本框

时间:2017-02-11 11:20:24

标签: asp.net-mvc asp.net-mvc-4 asp.net-mvc-3 razor

我有两个型号“用户”(ID,用户名,地址)和“销售”(id,descriprion,userid)

用户可以有多个销售(一对多关系)

我希望从mvc razor表单中添加用户信息,我还想从我的表单向控制器发送销售信息。

我的问题是执行此任务的最佳方式是什么

我正在使用网格和小表单在网格中添加销售,并希望使用用户信息发布该网格。我不知道该怎么做。

请建议我完成此任务的最佳方法。或者我使用用户信息如何发布销售的方式。

以下是我想发布此表单的方式

Click Image to see

1 个答案:

答案 0 :(得分:0)

如果你需要为每个用户插入多个描述,我认为你必须创建一个隐藏输入列表(我使用jquery你可以选择另一个插件或纯javascripts)

<form>
    <input id="username" name="username" />
    <input type="button" value="Add" id="btnAdd" />
    <table id="saleTable">
        <tbody></tbody>
    </table>
    <input type="submit" value="submit" />
    <div id="inputContainer">
    </div>
</form>

<script>
    var index = 0;
    $("#btnAdd").on("click", function () {
        var saleDesc = $("#saleDesc").val();
        $("#inputContainer").append('<input type="hidden" value="' + saleDesc + '" name="Sales[' + index + '].Description" />');
        $("#saleTable tbody").append('<tr><td> ' + saleDesc + '</td></tr>');
        index++;
    });
</script>

上面的代码可以使用以下ViewModel

public class User
{
    public long Id { get; set; }
    public string Username { get; set; }
    public List<Sale> Sales { get; set; }
}

public class Sale
{
    public long Id { get; set; }
    public string Description { get; set; }
}

点击“提交”按钮后,您将收到控制器中的数据

 public ActionResult Receive(User model)
 {
     //Save data...
     return View()
 }