繁体   English   中英

如何在MVC 5剃须刀中调用和刷新局部视图?

[英]How to call and refresh a partial view in MVC 5 razor?

当用户从值下拉列表中选择一个值时,如何用新数据刷新必须为空的创建视图上的部分视图?

我尝试了在留言板上列出的一堆东西以及其他东西,它只是深入研究了更多错误。 我只是简直不敢相信,在MVC中很难在Web表单中做到这一点。

我在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>

创建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();
}

我得到这个错误。 我对这里发生的事情一无所知。

找不到部分视图“ UpdateIssuesList”,或者没有视图引擎支持搜索到的位置。 搜索了以下位置:〜/ Views / CONTROLLERX / UpdateIssuesList.aspx
〜/视图/CONTROLLERX/UpdateIssuesList.ascx
〜/视图/共享/UpdateIssuesList.aspx
〜/视图/共享/UpdateIssuesList.ascx
〜/ Views / CONTROLLERX / UpdateIssuesList.cshtml
〜/ Views / CONTROLLERX / UpdateIssuesList.vbhtml
〜/ Views / Shared / UpdateIssuesList.cshtml
〜/ Views / Shared / UpdateIssuesList.vbhtml

一个论坛用户发布了这样的解决方案,我猜它对他有用,因为他贴了一个绿色的复选标记,但对我来说根本不起作用:

更新PartialView mvc 4

还尝试了这个:

在MVC中刷新局部视图

另请阅读此内容,但它是如此技术性,以至于我不太了解。

https://www.simple-talk.com/dotnet/asp-net/tips-and-tricks-about-razor-partial-views/

我最终在后面的代码中使用了一些称为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();
                    }
                });

够了吗?

$("#PV_IssueList").load("/controllerx/UpdateIssuesList?VID=1");

当需要刷新时,请调用此jquery行...或将其放在函数或任何事件中。例如onclick='$("#PV_IssueList").load("/controllerx/UpdateIssuesList?VID=1");'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM