如何将模型传递给Asp .Net中的部分视图?

问题描述:

我应该如何将视图传递给我的控制器?如何将模型传递给Asp .Net中的部分视图?

我在我看来,我有偏:

<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>` 

在我的控制器:

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

我应该如何通过从查看模型的ActionResult?我试过了:

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

但是只有null传递给了Refresh()方法。

您需要提交模型作为表单提交。您的控制器中会有另一个Refresh方法,它具有表单将提交到的HttpPost修饰器。您需要确保模型中的所有数据都以可见或隐藏的形式绑定在某个位置。

您需要使用ajax方法发布到具有[HttpPost]装饰器的操作。客户代码看起来像这样:

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

);