Javascript &引用;如何';重新加载唯一的局部视图';在jquery中使用HTML帮助程序提交表单后的部分;
我有一个MVC视图的局部视图,所以在提交jquery中提交的表单后,您可以在下面的代码中看到。我必须刷新部分视图,以显示单击“保存”按钮后在部分视图中所做的一些更改。单击“保存”时,我应该在脚本部分做什么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
@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>