Невозможно привести объект типа "System.Web.Mvc.ViewResult" к типу "System.Web.Mvc.PartialViewResult".

У меня есть метод Html.Action в моем файле layout.cshtml, который используется для каждой формы поиска. В файле макета у меня есть это условие рендеринга:

@if (dcmodel != null)
{
    @Html.Action("SearchForm", "Document", dcmodel)
}
else
{
    @Html.Action("SearchForm", "Document")
}

В контроллере документов у меня есть этот код:

[ChildActionOnly]
public ActionResult SearchForm()
{
    DocumentSearchModel model = (DocumentSearchModel)TempData["SearchForm"];

    var documentSearchModel = new DocumentSearchModel();

    if (model != null)
    {
        documentSearchModel = model;
    }

    AccessRight accessRight = unitOfWork.PermissionRepository.GetBOPermission(ApplicationViewRight.Document);
    documentSearchModel.ViewModelPermission = new ViewModelPermission(accessRight);

    documentSearchModel.DocumentStatuses = CreateDocumentStatusSelectList();
    documentSearchModel.DocumentTypes = CreateDocumentTypeSelectList();
    documentSearchModel.Storages = CreateStoragesSelectList();

    AccessRight documentAccessRight = unitOfWork.PermissionRepository.GetBOPermission(ApplicationViewRight.ShreddingManagement);

    documentSearchModel.IsShreddingAvailable = documentAccessRight.HasFlag(AccessRight.Create);
    documentSearchModel.IsUserSupervisor = unitOfWork.UserRepository.IsUserSupervisor();

    documentSearchModel.ShowLuceneSearch = unitOfWork.SystemSettingRepository.GetSettingsByCode("UseLuceneSearch").Value.ToLower() == "true";

    return PartialView("_SearchForm", documentSearchModel);
}

    [HttpPost]
    public ActionResult SearchForm(DocumentSearchModel searchModel)
    {

        var dataRequest = this.HttpContext.Request;

        Stream req = Request.InputStream;
        req.Seek(0, System.IO.SeekOrigin.Begin);
        string json = new StreamReader(req).ReadToEnd();

        var input = JsonConvert.DeserializeObject(json);

        TempData["SearchFormJson"] = input;

        TempData["SearchForm"] = searchModel;
        return RedirectToAction("Index");
    }

Когда я захожу на страницу, все работает... Когда я меняю местное время +2 часа и обновляю страницу, я получаю эту ошибку ниже.

Что я делаю не так? Пожалуйста помоги! Thnaks!

Невозможно привести объект типа "System.Web.Mvc.ViewResult" к типу "System.Web.Mvc.PartialViewResult".

в TT.MVCClient.Controllers.DocumentController.SearchForm() в C:\Projects\TT\Controllers\DocumentController.cs: строка 138 в lambda_method(закрытие, ControllerBase, Object[]) в System.Web.Mvc.ActionMethodDispatcher.Execute(Контроллер ControllerBase, параметры Object []) в System.Web.Mvc.ReflectedActionDescriptor.Execute(параметры ControllerContext controllerContext, IDictionary`2) в System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ID параметра ActionDescriptor), действие ActionDescriptor System.Web.Mvc.ControllerActionInvoker.<> C__DisplayClass13.b__10() в System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(фильтр IActionFilter, предконтекст ActionExecutingContext, продолжение Func`1)

{"Ошибка выполнения дочернего запроса для обработчика 'System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerAsyncWrapper'."}

0 ответов

Другие вопросы по тегам