2017-05-05 6 views
0

Wie sollte ich ein Modell von View an meinen Controller übergeben?Wie wird das Modell in Asp.Net an die Teilansicht übergeben?

ich in meiner Sicht Ich habe teilweise:

<div class="parking-status"> 
@Html.Partial("_Restaurants", Model) 
</div> 
@section Scripts 
<script type="text/javascript"> 
    setInterval(function() { 
    $('.parking-status').hide().load('/Home/Refresh').fadeIn('slow'); 
    }, 3000); 
</script>` 

In meinem Controller:

public ActionResult Refresh(RestaurantListViewModel model) 
{ 
    ...some operations on model... 
    return PartialView("~/Views/Home/_Restaurants.cshtml", model); 
} 

Wie soll ich das Modell aus View passieren zu Action? Ich habe versucht:

setInterval(function() { 
    $('.parking-status').hide().load('/Home/Refresh', { model :'@Model'}).fadeIn('slow'); 
}, 3000); 

aber nur Null wurde an Refresh() -Methode übergeben.

Antwort

0

Sie müssen das Modell als Formularübermittlung zurückgeben. Sie hätten in Ihrem Controller eine andere Refresh-Methode mit dem HttpPost-Dekorator, an den das Formular gesendet werden soll. Sie müssen sicher sein, dass alle Daten aus dem Modell irgendwo in der Form sichtbar oder in versteckten Feldern gebunden sind.

0

Sie müssen eine Ajax-Methode verwenden, um eine Nachricht an eine Aktion mit dem [HttpPost] -Dekorator zu senden. Der Client-Code sieht folgendermaßen aus:

  $.ajax({ 
       async: false, 
       cache: false, 
       url: '@Url.Action("MyAction", "MyController")', 
       type: 'GET', 
       dataType: 'json', 
       data: myJsonString } 

);

Verwandte Themen