Ich muß passieren bereits bestehendes Modell in ein Verfahren von meinem Teil nennt, ist das Problem, dass diese SyntaxASP.NET MVC eine Methode
@using (Html.BeginForm("EmployeeOverallReportFilter", "Reports", FormMethod.Post)) {}
ist neu zu meinem Modell (es aussieht), weil mein Controller mit Datenempfang Modell nur von edit-Box innerhalb @using {}
mit anderen Worten:
new Model
- einige Daten & doMagic und geht auf meinen Teil
- In meiner teilweise mehr Daten hinzufügen und es an die Steuerung
- Arbeit mit Daten
Und ich habe das Problem, in Schritt 3 übergeben, da einige, wie (ich glaube, wegen @using (Html.BeginForm("EmployeeOverallReportFilter", "Reports", FormMethod.Post)) {}
) i Daten verliere in Schritt 2 hinzugefügt
Die Frage ist:
ist es wahr? Kann @using (Html.BeginForm()) {}
mein Modell neu erstellen oder sollte ich den gesamten Code hinzufügen?
Es gibt eine andere Möglichkeit, eine Methode aufzurufen und dort Daten zu übergeben?
Ich habe dies versucht: <input type="submit" onclick="@Html.Action("EmployeeOverallReportFilter", "Reports", Model)" />
Aber der Fehler:
Exception Details: System.Web.HttpException: A public action method 'EmployeeOverallReportFilter' was not found on controller 'BTGHRM.Controllers.ReportsController'.
[HttpPost]
public ActionResult EmployeeOverallReportFilter(EmployeeOverallReport model)
{
//foreach(var item in model.ListOfPersonalData)
//{
// //NameFiler
// if((!item.FirstName.Contains(model.ModelFilters.NameFilter)) && model.ModelFilters.NameFilter!=String.Empty) model.ListOfPersonalData.Remove(item);
//}
return View("EmployeeOverAllReport", model);
}
Ein Formular gibt nur die Werte seiner erfolgreichen Steuerelemente zurück. Wenn Sie zuvor einige verknüpfte Daten gespeichert haben, fügen Sie ihre ID in einem Roure-Wert oder einer ausgeblendeten Eingabe hinzu, damit Sie sie veröffentlichen und diese Daten in der POST-Methode abrufen können. –
Der Fehler tritt auf, weil Sie eine Methode auf Ihrem Berichtscontroller haben sollten, die 'EmployeeOverallReportFilter' genannt wird und mit '[Post] 'versehen werden muss. Um vorhandene Daten zurück zu übertragen, müssen Sie das Ansichtsmodell verwenden, um die Eigenschaften der Daten, die Sie behalten möchten, und die Methode [Get] ', die Sie festlegen müssen, einzuschließen. Wenn Sie dann erneut posten, werden sie so lange ausgeführt, wie sie Teil des Formulars sind. – bilpor
Sie müssen ausgeblendete Felder für alle Eigenschaften einfügen, die Sie zusammen mit den Daten zurückgeben möchten, die vom Benutzer im Formular eingegeben wurden. – sachin