Hallo,
ich habe Schwierigkeiten bei dem auslesen eines ViewModels in meinem Controller.
In dem zugehörigen view befinden sich mehrere Form-Tags. Ich kann aber nur die Daten des ersten Form-Blocks empfangen. Wenn ich beispielsweise die Daten des zweiten Form-Blocks über mein ViewModel empfangen möchte, dann bekomme ich eine ArgumentNullException.
Beispiel Code:
viewModel:
View:
Controller:
Ich kann nur in der ControllerFunktion1 auf die Daten des viewModels zugreifen. In Controllerfunktion2 komischerweise nicht, obwohl ich alles gleich handhabe. Habe schon den Code der Seite mit Firebug angeschaut und die einzelnen Form-Blöcke stimmen bzw. haben an der richtigen Stelle ihr schließendes form-Tag.
Hat jemand eine Idee, was hier falsch sein könnte?
Edit:
Hier die Fehlermeldung die auftritt, wenn ich auf die viewModel-Daten in der ControllerFunktion2 zugreifen möchte:
MfG Zephyro
ich habe Schwierigkeiten bei dem auslesen eines ViewModels in meinem Controller.
In dem zugehörigen view befinden sich mehrere Form-Tags. Ich kann aber nur die Daten des ersten Form-Blocks empfangen. Wenn ich beispielsweise die Daten des zweiten Form-Blocks über mein ViewModel empfangen möchte, dann bekomme ich eine ArgumentNullException.
Beispiel Code:
viewModel:
Code:
public class MeinViewModel
{
public ObservableCollection<typ1> daten1
{
get;
set;
}
public ObservableCollection<typ2> daten2
{
get;
set;
}
}
View:
Code:
@using (Html.BeginForm("ControllerFunktion1", "Controller", FormMethod.Post, new { @id="form1" }))
{
// html elemente... für daten1
<input type="button" class="button" id="button1" value="button1" /><br />
<script type="text/javascript">
$('#button1').click(function () {
$('#form1').attr('action', '@Url.RouteUrl("Default", new { controller = "Controller", action = "ControllerFunktion1" })');
$('#form1').trigger('submit');
});
</script>
Html.EndForm();
}
@using (Html.BeginForm("ControllerFunktion1", "Controller", FormMethod.Post, new { @id="form2" }))
{
// html elemente... für daten2
<input type="button" class="button" id="button2" value="button2" /><br />
<script type="text/javascript">
$('#button2').click(function () {
$('#form2').attr('action', '@Url.RouteUrl("Default", new { controller = "Controller", action = "ControllerFunktion2" })');
$('#form2').trigger('submit');
});
</script>
Html.EndForm();
}
Controller:
Code:
public ActionResult ControllerFunktion1(MeinViewModel viewModel)
{
// code...
return RedirectToAction(...);
}
// Hier sind im viewModel daten2 = null, was stimmt. daten1 sind gefüllt!
public ActionResult ControllerFunktion2(MeinViewModel viewModel)
{
// code...
return RedirectToAction(...);
}
// Hier sind im viewModel daten1 & daten2 = null. Normalerweise sollten jetzt hier die daten1 = null, und die daten2 gefüllt sein.
Ich kann nur in der ControllerFunktion1 auf die Daten des viewModels zugreifen. In Controllerfunktion2 komischerweise nicht, obwohl ich alles gleich handhabe. Habe schon den Code der Seite mit Firebug angeschaut und die einzelnen Form-Blöcke stimmen bzw. haben an der richtigen Stelle ihr schließendes form-Tag.
Hat jemand eine Idee, was hier falsch sein könnte?
Edit:
Hier die Fehlermeldung die auftritt, wenn ich auf die viewModel-Daten in der ControllerFunktion2 zugreifen möchte:
Code:
Exception Details: System.ArgumentNullException: Value cannot be null.
Parameter name: source
MfG Zephyro
Zuletzt bearbeitet: