部分视图名称问题

时间:2016-03-07 05:13:02

标签: c# asp.net-mvc

嗨,我被困在一个代码中,我不知道我做错了什么。 这就是我在错误块中得到的结果。

enter image description here

这是函数调用

function GetDocumenttList(FID, CID) {
    var fURL = "/ClaimEdit/AllDocumentList";
    if (FID && CID) {
        $.ajax({
            type: 'GET',
            url: fURL,
            dataType: "html",
            async: false,
            data: { "folderID": FID, "claimID": CID, "page": 1 },
            contentType: "application/json; charset=utf-8",
            success: function (result) {
                $('#partialdivDocumentList').html(result);
                $('#partialdivDocumentList').css('display', 'block');
                //....Now update Navigation List start.
                $.ajax({
                    type: 'GET',
                    url: '/ClaimEdit/NavigationList',
                    datatype: "text",
                    async: false, data: { "parentID": FID, "claimID": CID },
                    contentType: "application/json; charset=utf-8",
                    success: function (result) {
                        $('#divNavigationList').html(result);
                    }
                });
                //....Now update Navigation List end.
            },
            error: function (request, status, error) {
                alert(request.responseText);
            }
        });
    }
}

这是视图“AllDocumentList.cshtml”

 @model PagedList.IPagedList<CRM.Core.ViewModel.Claim.ClaimDocumentViewModel>
    @using PagedList.Mvc;
    <table class="table-grid-3" cellpadding="0" cellspacing="0" border="0" width="100%">
        <thead>
            <tr>
                <th width="60%">
                    Document
                </th>
                <th width="20%">
                    Date
                </th>
                <th width="20%">
                    User Name
                </th>
            </tr>
        </thead>
        <tbody>
            @foreach (var item in Model)
            {
                <tr>
                    <td>
                        @Ajax.ActionLink(item.ClaimDocumentName, "DocView", new { claimDocID = item.ClaimDocumentID, path = item.ClaimDocumentPath + item.ClaimDocumentName }, new AjaxOptions() { HttpMethod = "GET", UpdateTargetId = "divPartidalDocView", InsertionMode = InsertionMode.Replace })
                    </td>
                    <td>
                        @Html.DisplayFor(modelItem => item.ClaimDocumentUploadDate)
                    </td>
                    <td>
                        @Html.DisplayFor(modelItem => item.UserName)
                    </td>
                </tr>
            }
        </tbody>
    </table>
    Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) of @Model.PageCount
    @Html.PagedListPager(Model, page => Url.Action("AllDocumentList", new { page, folderID = ViewBag.folderID, claimID = ViewBag.claimID }), PagedListRenderOptions.EnableUnobtrusiveAjaxReplacing(new AjaxOptions { HttpMethod = "GET", UpdateTargetId = "partialdivDocumentList" }))

最后这是我的行动。

public ActionResult AllDocumentList(int folderID, int claimID, int? page)
{
    ViewBag.folderID = folderID;
    ViewBag.claimID = claimID;
    Mapper.CreateMap<ClaimDocument, ClaimDocumentViewModel>();
    var folderList = _ClaimDoc.GetClaimDocumentListByFolderIDClaimID(claimID, folderID);
    var folderListModel = folderList.OrderBy(x => x.ClaimDocumentID).ToList();
    var pageNumber = (page ?? 1);
    return PartialView(folderListModel.ToPagedList(pageNumber, Common.Constants.PageSize));
}

我遇到了这个错误,我的部分视图AllDocumentList无法找到,同时搜索其添加“\ u0027” 我在MVC中不是一个大块头,所以如果问一些愚蠢的话,请袒露我。

3 个答案:

答案 0 :(得分:0)

从您的评论中我看到您的视图位于区域中,但错误消息显示正在从非区域位置(即网站的根目录)调用或搜索它。

有两件事要尝试:

  • 确保Controller也在区域中,并且URL包含区域。
  • 或者如果无法完成或不是您需要的,那么您可能需要将视图移动到/Views/Shared文件夹中。

答案 1 :(得分:-1)

\ u0027引用单引号。您应该尝试对字符串进行编码或使用JSON.NET按原样发送编码字符串。

答案 2 :(得分:-1)

最后,我现在能够克服这种情况。我知道这不是好的做法,但在得到任何正确答案之前,我会喜欢用这个技巧。 我正在使用完整路径来查看我的部分视图。 有点像:

  return PartialView("~/Areas/Claims/Views/ClaimEdit/AllDocumentList.cshtml", folderListModel.ToPagedList(pageNumber, Common.Constants.PageSize));

如果有人能更好地解决这个问题,我还是会等待。我也不知道为什么在行动中我必须给出部分视图的完整路径(在这个控件中只有我没有这种类型的问题)