如何在ASP.NET MVC中从视图接收动态添加的值?

时间:2016-04-09 07:40:29

标签: c# jquery asp.net-mvc asp.net-mvc-4 entity-framework-4

我正在学习asp.net mvc中的一些概念。我正在使用实体框架和visual studio 2013社区版。我正在创建一个学习的演示应用程序。我根据this链接创建了模型。模型如下。 以下是课程模型。该课程以部门为外键。一个部门可以有很多课程。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace ManyItemsDemo2.Models
{  
    public class Course
    {
        public int CourseID { get; set; }
        public string Title { get; set; }
        public string Credits { get; set; }
        public int DepartmentID { get; set; }

        public virtual Department Department { get; set; }
    }
}

这是部门模型。部门模型很简单。它与课程模型相关联。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace ManyItemsDemo2.Models
{
    public class Department
    {
        public Department()
        {
            this.Cources = new HashSet<Course>();
        }
        public int DepartmentID { get; set; }
        public string Name { get; set; }
        public double Budget { get; set; }
        public string Administrator { get; set; }

        public virtual ICollection<Course> Cources { get; set; }
    }
}

有一个上下文类。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Entity;

namespace ManyItemsDemo2.Models
{
    public class SchoolContext:DbContext
    {
        public SchoolContext() : base("SchoolContext") { }

        public DbSet<Course> Courses { get; set; }
        public DbSet<Department> Departments { get; set; }
    }
}

现在我使用了scafolding并使用CRUD功能创建了控制器和视图。我可以在视图中创建一个部门和课程。现在我需要在创建部门时分配多个课程。所以我创建了一个这个视图模型。这里有一个部门有很多课程。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using ManyItemsDemo2.Models;

namespace ManyItemsDemo2.ViewModels
{
    public class DeptCourses
    {
        public Department Department { get; set; }
        public IEnumerable<Course> Course { get; set; }
    }

}

与此同时我创建了一个新视图。在创建部门时可以接受更多的资源。视图结果是这样的。 The View

加号按钮的脚本来自我之前的问题here。该脚本使用jquery并克隆下拉并添加回来。

问题从这里开始。当我添加多个下拉列表时,让我们说3,我在控制器中接收null,虽然我收到三个元素,但只有一个元素有值,其他元素为null。请参阅图像以获得更多说明。

Image for clarification.

为什么会这样? PS:我可能忽略了实时场景,因为这是一个演示应用程序,用于学习和清除与实体框架的一对多关系的概念以及使用MVC。

1 个答案:

答案 0 :(得分:0)

This为我工作。刚刚在脚本中更改了名称,并在httppost中添加了字符串数组。