使用 Fiddler 我可以看到甚至没有发出请求,但我不明白为什么。
这是表格:
@using (Html.BeginForm("Index", "FileSystemChannelIndex", FormMethod.Post, new {
channelId = @Model.ChannelId }))
{
@Html.HiddenFor(model => model.Id)
@Html.HiddenFor(model => model.ChannelId)
<div class="editor-label">
Select File Source
</div>
<div class="editor-field">
@Html.DropDownListFor(
model => model.SelectedFileSourceValue,
new SelectList(Model.AvailableFilesSources, "Id", "Name"),
new { id = "selectFileSource" })
</div>
<p>
<input class="t-button" type="submit" value="Save" />
</p>
}
视图最初来自:
public ViewResult Create(int channelId)
{
var channel = this.fullUOW.GetFileSystemChannelRepository().All.Where(c => c.Id == channelId);
var vm = new FileSystemChannelIndexViewModel(channelId, new FileSystemChannelIndex());
return View("Edit", vm);
}
我尝试将“名称”属性添加到,但这没有任何区别。
有任何想法吗?
编辑:吉姆等人的更多信息......
领域:
public class FileSystemChannel
{
public int Id {get; set; }
public ICollection<FileSystemChannelIndex> ChannelIndexes { get; set; }
}
public class FileSystemChannelIndex
{
public int Id { get; set; }
public FileSystemChannel ParentChannel { get; set; }
}
由于 0...* 关联,在 UI 中,我们必须先创建一个 FileSystemChannel,然后向它添加一个 FileSystemChannelIndex。这就是为什么我将 channelId 传递给 FileSystemChannelIndex 创建视图。提交新的 FileSystemChannelIndex 时,应调用以下操作:
[HttpPost]
public ActionResult Index(int channelId, FileSystemChannelIndexViewModel vm)
{
//TODO: get the Channel, add the Index, save to db
return View("Index");
}