Невозможно привести объект типа "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'."}