使用Fiddler我可以看到該請求甚至沒有被創建,但我看不出爲什麼。ASP.NET MVC 3(Razor)表單提交不起作用
這裏的形式:
@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");
}
你有一個ActionResult調用帶有[[HttpPost]數據註釋的索引嗎? –
你必須得到一些錯誤?那些錯誤是什麼? – Rafay
@Tim Yep,雖然我不確定簽名是否正確。 – empo