【问题标题】:How to pass model to Partial View in Asp .Net?如何将模型传递给 Asp .Net 中的局部视图?
【发布时间】:2017-05-05 18:38:07
【问题描述】:

我应该如何将模型从 View 传递到我的 Controller?

我认为我有偏心:

<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() 方法。

【问题讨论】:

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


    【解决方案1】:

    您需要将模型作为表单提交提交回来。您的控制器中将有另一个 Refresh 方法,该方法具有表单将提交到的 HttpPost 装饰器。您需要确保模型中的所有数据都绑定在表单中的某个可见或隐藏字段中。

    【讨论】:

      【解决方案2】:

      您需要使用 ajax 方法发布到具有 [HttpPost] 装饰器的操作。客户端代码如下所示:

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

      【讨论】:

        猜你喜欢
        • 2014-02-05
        • 1970-01-01
        • 2019-02-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多