Javascript &引用;如何';重新加载唯一的局部视图';在jquery中使用HTML帮助程序提交表单后的部分;

Javascript &引用;如何';重新加载唯一的局部视图';在jquery中使用HTML帮助程序提交表单后的部分;,javascript,jquery,asp.net-mvc,Javascript,Jquery,Asp.net Mvc,我有一个MVC视图的局部视图,所以在提交jquery中提交的表单后,您可以在下面的代码中看到。我必须刷新部分视图,以显示单击“保存”按钮后在部分视图中所做的一些更改。单击“保存”时,我应该在脚本部分做什么 @using(Html.BeginForm(FormMethod.Post, new{id="form"})) { <div> @Html.Partial("_VehicleCard", Model) </div> <di

我有一个MVC视图的局部视图,所以在提交jquery中提交的表单后,您可以在下面的代码中看到。我必须刷新部分视图,以显示单击“保存”按钮后在部分视图中所做的一些更改。单击“保存”时,我应该在脚本部分做什么

@using(Html.BeginForm(FormMethod.Post, new{id="form"}))
{

    <div>
        @Html.Partial("_VehicleCard", Model)
    </div>
    <div>
        <div id="submitBtn" class="row>
            @(Model.VehicleCards.Count>0?"":"hidden")">
            <div>
                <button type="button" id="btnSubmit">Save</button>
            </div>
         </div>
    </div>
}

@section scripts{

    <script>
        $('#btnSubmit').click(function (event) {
            event.preventDefault();
            event.stopImmediatePropagation();
            $('#form').submit();
            //here i wants to refresh Patrial View.
        });
    </script>
}

您可以通过一个ajax调用简单地实现这一点

首先,您必须为
标记设置一个id

<div id="htmlContainer">
    @Html.Partial("_VehicleCard", Model)
</div>
你看起来是这样的:

 public PartialViewResult GetVehicleCard(...)
 {
      return PartialView("_VehicleCard", your view model);
 }

HttpPost方法用于向服务器发送数据。您不需要将数据发送到服务器,而是需要使用指定的条件从服务器获取数据,然后显示数据。通过发送,您不需要HTML.BeginForm()方法。此外,您不需要声明PartialViewResult返回类型,ActionResult就足够了。此外,不需要返回局部视图和关联模型的名称。只需向局部视图提供模型结果,如下所示:

return PartialView(model)
接下来,在要单击按钮的页面上创建一个AJAX链接,如下所示:

    @Ajax.ActionLink("GetVehicleForEndMileage", "Vehicles", new AjaxOptions()
{
    HttpMethod = "GET",
    InsertionMode = InsertionMode.InsertAfter,
    UpdateTargetId = "Results"
 })

<div id="Results"></div> 
@Ajax.ActionLink(“GetVehicleForEndMiles”,“Vehicles”,新的AjaxOptions()
{
HttpMethod=“GET”,
InsertionMode=InsertionMode.InsertAfter,
UpdateTargetId=“结果”
})
您可以将此链接包装在按钮标签中,以使用当前设置

现在只需在一个单独的.cshtml文件中定义部分视图

@model ModelName

<div>
     // Model attributes to be displayed here.
</div>
@ModelName模型
//要在此处显示的模型属性。
现在,将该局部视图嵌入到希望显示回调的视图中


说到这里,您的javascript/jQuery可以被删除。

我添加了:$('btnSubmit')。单击(函数(事件){event.preventDefault();event.stopImmediatePropagation();$('#表单')。submit();$.ajax({url:'../Vehicles/getVehicleForEndMiles“,数据类型:'html',数据:{date:$(“#date”).val(),Id:$(“#LocationId”).find(“选项:选中”).val(),成功:函数(数据){$(“#车辆”).html(数据);});问题是ame部分视图没有刷新。这有帮助吗?实际上操作不是用ajax调用的。您调用的url正确吗?我想是……引起了这个问题!我共享了控制器代码,请检查这个。
    @Ajax.ActionLink("GetVehicleForEndMileage", "Vehicles", new AjaxOptions()
{
    HttpMethod = "GET",
    InsertionMode = InsertionMode.InsertAfter,
    UpdateTargetId = "Results"
 })

<div id="Results"></div> 
@model ModelName

<div>
     // Model attributes to be displayed here.
</div>