En utilisant Fiddler je peux voir que la demande n'est même pas faite mais je ne vois pas pourquoi.ASP.NET MVC 3 (Razor) formulaire soumettre ne fonctionne pas
est ici la forme:
@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>
}
La vue est originaire de:
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);
}
J'ai essayé d'ajouter l'attribut « nom » à la mais qui ne fait aucune différence.
Des idées?
EDIT: Plus d'informations pour Jim et al ...
Domaine:
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; }
}
En raison de 0 ... * association, dans l'interface utilisateur, nous devons créer un premier FileSystemChannel puis ajoutez un FileSystemChannelIndex à celui-ci. C'est pourquoi je passe le channelId à la vue CreateSystemChannelIndex Create. Lors de la présentation de la nouvelle FileSystemChannelIndex l'action suivante doit être appelé:
[HttpPost]
public ActionResult Index(int channelId, FileSystemChannelIndexViewModel vm)
{
//TODO: get the Channel, add the Index, save to db
return View("Index");
}
Avez-vous un ActionResult appelé Index avec l'annotation de données [HttpPost] '? –
vous devez obtenir des erreurs? quelles sont ces erreurs? – Rafay
@Tim Oui, même si je ne suis pas sûr que la signature soit correcte. – empo