如何在 MVC 5 剃须刀中调用和刷新局部视图?
How to call and refresh a partial view in MVC 5 razor?
当用户从值下拉列表中选择一个值时,如何使用新数据刷新必须为空的创建视图的部分视图?
我尝试了留言板上列出的一堆东西以及其他东西,它只是深入到更多错误。我无法相信在 Webforms 中如此简单的事情在 MVC 中却如此困难。
我在 Chrome 和 IE 中都试过了,但都出现错误,所以我迷路了。我在共享文件夹中有这样的部分视图:
<table cellpadding="1" border="1">
.... // table header
@foreach (SYSTEMX.Models.VUE_ISSUE_LIST item in ViewBag.IssuesList)
{
<tr>
<td>@item.Issue</td>
</tr>
}
</table>
Create cshtml 文件有这个:
<div class="col-sm-6">
<div class="form-horizontal" style="display:none" id="PV_IssueList">
@{ Html.RenderAction("UpdateIssuesList"); }
</div>
</div>
Controller中有类似的代码
[HttpGet]
public ActionResult UpdateIssuesList(int? VID)
{
ViewBag.IssuesList = GetIssuesList(VID);
return PartialView("UpdateIssuesList");
}
GetIssuesList(VID) 看起来与此非常相似,它位于 mvc 应用程序的控制器中
private List<VUE_ISSUE_LIST> GetIssuesList(int? VID)
{
return db.VUE_ISSUE_LIST_.Where(i => i.ID == VID).ToList();
}
我收到这个错误。我对这里发生的事情一无所知。
The partial view 'UpdateIssuesList' was not found or no view engine supports the searched locations. The following locations were searched:
~/Views/CONTROLLERX/UpdateIssuesList.aspx
~/Views/CONTROLLERX/UpdateIssuesList.ascx
~/Views/Shared/UpdateIssuesList.aspx
~/Views/Shared/UpdateIssuesList.ascx
~/Views/CONTROLLERX/UpdateIssuesList.cshtml
~/Views/CONTROLLERX/UpdateIssuesList.vbhtml
~/Views/Shared/UpdateIssuesList.cshtml
~/Views/Shared/UpdateIssuesList.vbhtml
一位论坛用户发布了类似这样的解决方案,我猜这对他有用,因为他打了一个绿色的复选标记,但对我根本不起作用:
Updating PartialView mvc 4
也试过这个:
也阅读了这篇文章,但它太专业了,我不太理解。
https://www.simple-talk.com/dotnet/asp-net/tips-and-tricks-about-razor-partial-views/
够了吗?
$("#PV_IssueList").load("/controllerx/UpdateIssuesList?VID=1");
当您需要刷新时,调用此 jquery 行...或将其放入函数或任何事件中...例如 onclick='$("#PV_IssueList").load("/controllerx/UpdateIssuesList?VID=1");'
我最终在后面的代码中使用了一些名为 Ajax 的代码,它从下拉列表中读取点击。获取所选项目的值并将值传递回
构建列表并发送它以更新局部视图的所有控制器代码,如果那里有数据,它会传递局部视图
使用更新列表创建表单。
$(document).ready(function () {
$('#RES_VID').change(function ()
{
debugger;
$.ajax(
{
url: '@Url.Action("UpdatePartialViewList")',
type: 'GET',
data: { VID: $('#RES_VID').val() },
success: function (partialView)
{
$('#PV_WidgetList').html(partialView);
$('#PV_WidgetList').show();
}
});
当用户从值下拉列表中选择一个值时,如何使用新数据刷新必须为空的创建视图的部分视图?
我尝试了留言板上列出的一堆东西以及其他东西,它只是深入到更多错误。我无法相信在 Webforms 中如此简单的事情在 MVC 中却如此困难。
我在 Chrome 和 IE 中都试过了,但都出现错误,所以我迷路了。我在共享文件夹中有这样的部分视图:
<table cellpadding="1" border="1">
.... // table header
@foreach (SYSTEMX.Models.VUE_ISSUE_LIST item in ViewBag.IssuesList)
{
<tr>
<td>@item.Issue</td>
</tr>
}
</table>
Create cshtml 文件有这个:
<div class="col-sm-6">
<div class="form-horizontal" style="display:none" id="PV_IssueList">
@{ Html.RenderAction("UpdateIssuesList"); }
</div>
</div>
Controller中有类似的代码
[HttpGet]
public ActionResult UpdateIssuesList(int? VID)
{
ViewBag.IssuesList = GetIssuesList(VID);
return PartialView("UpdateIssuesList");
}
GetIssuesList(VID) 看起来与此非常相似,它位于 mvc 应用程序的控制器中
private List<VUE_ISSUE_LIST> GetIssuesList(int? VID)
{
return db.VUE_ISSUE_LIST_.Where(i => i.ID == VID).ToList();
}
我收到这个错误。我对这里发生的事情一无所知。
The partial view 'UpdateIssuesList' was not found or no view engine supports the searched locations. The following locations were searched: ~/Views/CONTROLLERX/UpdateIssuesList.aspx
~/Views/CONTROLLERX/UpdateIssuesList.ascx
~/Views/Shared/UpdateIssuesList.aspx
~/Views/Shared/UpdateIssuesList.ascx
~/Views/CONTROLLERX/UpdateIssuesList.cshtml
~/Views/CONTROLLERX/UpdateIssuesList.vbhtml
~/Views/Shared/UpdateIssuesList.cshtml
~/Views/Shared/UpdateIssuesList.vbhtml
一位论坛用户发布了类似这样的解决方案,我猜这对他有用,因为他打了一个绿色的复选标记,但对我根本不起作用:
Updating PartialView mvc 4
也试过这个:
也阅读了这篇文章,但它太专业了,我不太理解。
https://www.simple-talk.com/dotnet/asp-net/tips-and-tricks-about-razor-partial-views/
够了吗?
$("#PV_IssueList").load("/controllerx/UpdateIssuesList?VID=1");
当您需要刷新时,调用此 jquery 行...或将其放入函数或任何事件中...例如 onclick='$("#PV_IssueList").load("/controllerx/UpdateIssuesList?VID=1");'
我最终在后面的代码中使用了一些名为 Ajax 的代码,它从下拉列表中读取点击。获取所选项目的值并将值传递回
构建列表并发送它以更新局部视图的所有控制器代码,如果那里有数据,它会传递局部视图
使用更新列表创建表单。
$(document).ready(function () {
$('#RES_VID').change(function ()
{
debugger;
$.ajax(
{
url: '@Url.Action("UpdatePartialViewList")',
type: 'GET',
data: { VID: $('#RES_VID').val() },
success: function (partialView)
{
$('#PV_WidgetList').html(partialView);
$('#PV_WidgetList').show();
}
});