将动态创建的输入发布到数据库mvc5

时间:2015-10-07 05:45:03

标签: jquery asp.net-mvc-5

我想从动态创建的输入中向DB发布一些字符串(文本)。

以下是生成该输入的代码。我使用另一个文本框(id =' newtypevalue')为该输入输入值。有一个与输入相关联的删除按钮。

这是_AttributeCreate局部视图

@using (Html.BeginForm("Save", "Atribute"))
{
  @Html.TextBoxFor(a=>a.AtributeCode)
  @Html.TextBoxFor(a=>a.AtributeName)

  <div>
  <input type="text" id="newtypevalue" /></div>

  <div>
  <input type="button" value="Add Text" id="addtypevalue" /></div>  

  <div id="typevaluelist">
    // Generate inputs for existing items and in case of returning the view
    @foreach(var item in Model.typevalue)
    {
    <div class="typevalue">
        <input type="text" name="typevalue" value="@item" />
        <button type="button" class="delete">Delete</button>
    </div>
    }
   </div>

    <div>
    <input type="submit" value="Save" id="btn" class="btn btn-success"/>
    </div>

}

// Hidden template for adding new items (outside the form element)
<div id="new" style="display:none;">
  <div class="typevalue">
    <input type="text" name="typevalue" />
    <button type="button" class="delete">Delete</button>
  </div>
</div>

//scripts for adding and deleting items
$('#addtypevalue').click(function() {
   var clone = $('#new').clone().children('div'); // copy the template
   clone.find('input').val($('#newtypevalue').val()); // update text
   $('#typevaluelist').append(clone); // add it to the DOM
   $('#newtypevalue').val(''); // clear initial text box
});

$('#typevaluelist').on('click', '.delete', function() {
   $(this).closest('.typevalue').remove(); // remove it from the DOM
});    

AttributeViewModel

public class AttributeViewModel
{
   public string AtributeCode { get; set; }

   public string AtributeName { get; set; }

   public IEnumerable<String> typevalue { get; set; }
}

在属性控制器

public ActionResult Save(AttributeViewModel avm)
    {
        var objContext = new KnittingdbContext();

        Atribute newAtt = new Atribute
        {
            AtributeCode=avm.AtributeCode,
            AtributeName=avm.AtributeName
        };

        objContext.Atributes.Add(newAtt);
        objContext.SaveChanges();

        return RedirectToAction("AtributeIndex", new { A = "New" });
    }

AttributeCode和Attribute名称保存到Attribute表中,而动态创建的输入则保存到另一个名为AttributeDetail的表中,该表与Attribute表具有FK关系。

一旦我通过带有id&#39; btn&#39;的提交按钮提交,所有这些值都应该保存到DB中。我能够将相关条目(AttributeCode和AttributeName)保存到属性表。但困难在于将动态创建的文本保存到AttributeDetail表。我努力捕获这些文本并发布它们。所有帮助赞赏。提前致谢!

0 个答案:

没有答案
相关问题