Ist es möglich, die Eigenschaftsnamen, die an eine Controller-Aktion gesendet werden, innerhalb einer @Html.EditorFor
zu ändern?ASP.NET MVC5-Controller-Aktionsmethode Parameter Null
Ich habe eine Ansicht, die sowohl eine Liste von Objekten und ein Formular anzeigt, die es einem Benutzer ermöglichen sollten, einen zu erstellen. Ich möchte nur die neuen Objektwerte nach der Erstellung und nicht, wenn möglich, das gesamte Ansichtsmodell zurückgeben.
Mein Viewmodel Struktur für die Ansicht sieht wie folgt aus:
public class GenericIndexViewModel
{
public IEnumerable<GenericListViewModel> ExistingObjects { get; set; }
public GenericCreateViewModel NewObject { get; set;
}
public class GenericCreateViewModel
{
public string PropertyA { get; set; }
public string PropertyB { get; set; }
}
Nach Ansicht durch ExistingObjects
ich Looping alle vorhandenen Objekte angezeigt werden, und unter Ich bin ein Formular mit @Html.BeginForm("Index", "GenericController", FormMethod.Post)
Erstellen und innen Ich habe das entsprechende @Html.EditorFor(m => m.NewObject.PropertyA)
. Ansicht-Schnipsel unten:
@model Namespace.Models.Generic.GenericIndexViewModel
...
@if (Model.ExistingObjects.Any())
{
// Display list of objects
}
...
@using (Html.BeginForm("Index", "GenericController", FormMethod.Post))
{
@Html.ValidationSummary(true)
<div class="field-holder">
@Html.LabelFor(m => m.NewObject.PropertyA)
@Html.EditorFor(m => m.NewObject.PropertyA)
</div>
<div class="field-holder">
@Html.LabelFor(m => m.NewObject.PropertyA)
@Html.EditorFor(m => m.NewObject.PropertyA)
</div>
<div>
<input type="submit" value="Save" name="command" />
</div>
}
Die Aktion Methodensignatur ist wie folgt:
[HttpPost]
public ActionResult Index(GenericCreateViewModel model) { ... }
Wenn ich das Formular abzuschicken trifft es erfolgreich die Aktion-Methode, obwohl model
Parameter null
ist.
Wenn ich überprüfen Sie die Post-Daten Ich kann sehen, dass sich die Eigenschaften mit NewObject
voran werden:
NewObject.PropertyA=test1&NewObject.PropertyB=test2
Wie kann ich entweder verhindern, dass das Präfix oder die Aktion-Methode erhalten Sie die Präfix Eigenschaften als Argumente zu erkennen?
Was ist Ihr @Modell in Ihrer Ansicht? –
Bitte zeigen Sie den notwendigen relevanten Code of view –
Hinzugefügt Ansicht Snippet wie gewünscht. –