我在视图中有这个代码:
var writers = new List<Writer> {
new Writer() { name = "Writer1", surname = "SWriter1" },
new Writer() { name = "Writer2", surname = "SWriter2" },
new Writer() { name = "Writer3", surname = "SWriter3" },
new Writer() { name = "Writer4", surname = "SWriter14" },
new Writer() { name = "Writer5", surname = "SWriter5" },
new Writer() { name = "Writer6", surname = "SWriter6" }
};
<div>
@Html.Label("Writers")
<select class="chosen-select" multiple="" data-placeholder="Select writers of the Film">
@for(int i = 0; i < writers.Count; i ++)
{
<option value="@i">@writers[i].name</option>
}
</select>
</div>
<input type="submit" value="Create" />
当我选择几个作者后点击提交按钮时,我丢失了POST上的元素。在控制器中,我接收到html的其他元素但没有编写者。这是我的行动方法:
public ActionResult Create([Bind(Exclude = "poster, trailer")]Movie movie, HttpPostedFileBase poster, HttpPostedFileBase trailer)
我的模特是:
[MetadataType(typeof(MovieMetadata))]
[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Movie")
public partial class Movie : INotifyPropertyChanging, INotifyPropertyChanged
{
.....other fields of movie.....
private EntitySet<Movie_Writer> _Movie_Writers;
}
class MovieMetadata
{
[ScaffoldColumn(false)]
public int id { get; set; }
[Required(ErrorMessage = "Title is required")]]
[StringLength(70, ErrorMessage = "Title must have a lenght less than 70")]
public string title { get; set; }
[Required(ErrorMessage = "The realese date of the movie is required")]
public DateTime releaseDate { get; set; }
public string storyline { get; set; }
public Binary poster { get; set; }
[ScaffoldColumn(false)]
public Binary trailer { get; set; }
}
我是否需要在模型中添加Writers列表并修改操作方法? Movie_Writer是一个中间表,因为关系是多对多的。
答案 0 :(得分:0)
试试这个......
在Name
标记中添加select
属性,以便您可以在控制器中获取数据
更新
<select Name="YOUR_MODEL_NAME" Class=...>