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

时间:2017-05-05 18:38:08

标签: javascript jquery asp.net asp.net-mvc

我应该如何将模型从View传递给我的控制器?

我认为我有部分:

<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);
}

我应该如何将模型从View传递给ActionResult?我试过了:

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

但只将null传递给Refresh()方法。

2 个答案:

答案 0 :(得分:0)

您需要将模型作为表单提交提交。您将在控制器中拥有另一个具有表单将提交的HttpPost装饰器的Refresh方法。您需要确保模型中的所有数据都以明显的方式绑定在表单中的某个位置或隐藏在字段中。

答案 1 :(得分:0)

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

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