在ASP.Net Core中动态添加表单元素

时间:2016-08-09 06:50:00

标签: jquery asp.net asp.net-core asp.net-core-mvc

瓷砖可能不适合我的问题

我有一个模特:

public class MpgViewModel
{
    public DSModel DSht { get; set; }
    public List<CMModel> CMps{ get; set; }
}

CMModel是:

public class CMModel
{
    public int Id { get; set; }
    public int DShtId { get; set; }
    public int SCI { get; set; }
    public string SCT { get; set; }
    public string TCT { get; set; }
    public bool Active { get; set; }
    public DateTimeOffset LastUpdatedOn { get; set; }
    public string LastUpdatedBy { get; set; }
}

现在我有一个Form,它接受DSModel的输入,然后,我希望以相同的形式获得CMModel列表的输入。可以存在将由用户确定的任意数量的CMModel对象。我想让用户在列表中添加更多对象,只需单击“添加更多”按钮。

我已经为CMModel输入创建了一个部分,我想在用户单击“添加更多”按钮时附加到主窗体。

@model CMModel 

<div class="cmEntry">
<fieldset class="form-group">
    <label for="sci">sci: </label>
    <input type="number" asp-for="sci" class="form-control" id="sci" />
</fieldset>
<fieldset class="form-group">
    <label for="sct">sct: </label>
    <input type="text" asp-for="sct" class="form-control" id="sct" />
</fieldset>
<fieldset class="form-group">
    <label for="tct">tct: </label>
    <input type="text" asp-for="tct" class="form-control" id="tct" />
</fieldset>
<fieldset class="form-group">
    <label for="active">Active: </label>
    <select asp-for="Active" class="form-control" id="active">
        <option value="1">Yes</option>
        <option value="0">No</option>
    </select>
</fieldset>
<fieldset class="form-group">
    <label for="lastUpdatedOn">Last Updated On:</label>
    <input type="date" asp-for="LastUpdatedOn" class="form-control" id="lastUpdatedOn" />
</fieldset>
</div>

实现此功能的最佳方式是什么。我应该在jquery中创建这个部分,如$(#myDiv).append(&#34; .....&#34;);或者我应该向控制器发送ajax请求以在每次单击按钮时返回部分并将结果附加到他的表单。 ASP.net能否在提交表单时正确绑定它?

修改

BeginCollectionItem可以实现我正在寻找的东西,但它似乎不适用于asp.net核心。当我使用

时,我的部分视图中出现错误
 @using (Html.BeginCollectionItem("Entries")) 
 {

 }

Type HtmlHelper在未引用的程序集中定义。您必须添加对程序集的引用,System.Web.Mvc,Version = 2.0.0.0&#39;

0 个答案:

没有答案