Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 5 动态创建文本框并保存数据MVC_Asp.net Mvc 5 - Fatal编程技术网

Asp.net mvc 5 动态创建文本框并保存数据MVC

Asp.net mvc 5 动态创建文本框并保存数据MVC,asp.net-mvc-5,Asp.net Mvc 5,我是MVC新手。我想在用户单击时动态创建文本框 <script> function addRow(tableID) { var table = document.getElementById(tableID); var rowCount = table.rows.length; var row = table.insertRow(rowCount); var colCount = table.rows[0].cells.length;

我是MVC新手。我想在用户单击时动态创建文本框

<script>
function addRow(tableID) {
    var table = document.getElementById(tableID);
    var rowCount = table.rows.length;
    var row = table.insertRow(rowCount);
    var colCount = table.rows[0].cells.length;
        for(var i=0; i<colCount; i++) {

            var newcell = row.insertCell(i);
            newcell.innerHTML = table.rows[0].cells[i].innerHTML;
            switch(newcell.childNodes[0].type) {
                case "text":
                    newcell.childNodes[0].value = "";
                    break;
                case "checkbox":
                    newcell.childNodes[0].checked = false;
                    break;
                case "select":
                    newcell.childNodes[0].selectedIndex = 0;
                    clear_attrib();
                    break;
        }

    }
    else {
        alert("Cannot add another row.");
    }
}

function deleteRow(tableID) {
    try {
        var table = document.getElementById(tableID);
        var rowCount = table.rows.length;
        for(var i=0; i<rowCount; i++) {
            var row = table.rows[i];
            var chkbox = row.cells[0].childNodes[0];
            if(null != chkbox && true == chkbox.checked) {
                if(rowCount <= 1) {
                    alert("Cannot delete all the rows.");
                    break;
                }
                table.deleteRow(i);
                rowCount--;
                i--;
            }
        }
    }catch(e) {
        alert(e);
    }
}
我尝试使用foreach,但它仍然只保存第一个值,所以我删除了它。。。我想我在加价中遗漏了一些东西。。。比如添加[]使其成为一个数组,就像在PHP中一样。我不知道如何在控制器中修复它

如何修复控制器中的标记和循环以进行保存?谢谢

编辑 这是viewmodel

public class EmployeeViewModel
{
    [DatabaseGenerated(DatabaseGeneratedOption.None)]
    public int ID { get; set; }

    public string LastName { get; set; }
    public string FirstName { get; set; }
    public string Schedule { get; set; }
    public string Room { get; set; }
    public string Subject { get; set; }
    public virtual IEnumerable<FacultySchedule> FacultySchedule { get; set; }
}

这些是领域模型

public partial class Employee
{
    public Employee()
    {
        FacultySchedule = new HashSet<FacultySchedule>();
    }
    [DatabaseGenerated(DatabaseGeneratedOption.None)]
    public int ID { get; set; }
    public string LastName { get; set; }
    public string FirstName { get; set; }

    public virtual ICollection<FacultySchedule> FacultySchedule { get; set; }

}

public partial class FacultySchedule
{
    public FacultySchedule()
    {
        Substitution = new HashSet<Substitution>();
    }
    public int ID { get; set; }
    public int EmployeeID { get; set; }
    public string Schedule { get; set; }
    public string Room { get; set; }
    public string Subject { get; set; }

    public virtual Employee Employee { get; set; }
}

没有使用索引器正确命名控件。提供一些选项来生成正确的htmlso这是否意味着我需要首先在部分视图中创建“动态添加文本框”部分,因为它不在部分视图中。。。谢谢,我不知道你指的是哪一部分。这是指我使用BeginCollectionItem提供的选项的链接吗?是的,我需要在局部视图中进行设置,以便实现选项1吗?是的,您有一个模型的局部视图,在您的示例中,它被包装在标记中。然后,addRow方法使用ajax返回部分内容并将html附加到表中。
public class EmployeeViewModel
{
    [DatabaseGenerated(DatabaseGeneratedOption.None)]
    public int ID { get; set; }

    public string LastName { get; set; }
    public string FirstName { get; set; }
    public string Schedule { get; set; }
    public string Room { get; set; }
    public string Subject { get; set; }
    public virtual IEnumerable<FacultySchedule> FacultySchedule { get; set; }
public partial class Employee
{
    public Employee()
    {
        FacultySchedule = new HashSet<FacultySchedule>();
    }
    [DatabaseGenerated(DatabaseGeneratedOption.None)]
    public int ID { get; set; }
    public string LastName { get; set; }
    public string FirstName { get; set; }

    public virtual ICollection<FacultySchedule> FacultySchedule { get; set; }

}

public partial class FacultySchedule
{
    public FacultySchedule()
    {
        Substitution = new HashSet<Substitution>();
    }
    public int ID { get; set; }
    public int EmployeeID { get; set; }
    public string Schedule { get; set; }
    public string Room { get; set; }
    public string Subject { get; set; }

    public virtual Employee Employee { get; set; }
}