gpt4 book ai didi

asp.net-core-2.0 - 如何从Core 2 Razor页面ViewModel处理程序返回部分 View

转载 作者:行者123 更新时间:2023-12-04 07:21:22 27 4
gpt4 key购买 nike

在Asp.Net MVC中,您可以通过执行以下操作轻松返回部分 View :
return PartialView("ModelName", Model);
如何在RazorPage ViewModel处理程序上完成此操作?

最佳答案

我想通了。它不像在MVC中那样直接。您必须创建一个空的ViewDataDictionary(),然后将其Model属性设置为该部分的填充模型。

查看模型/处理程序

public async Task<IActionResult> OnGetAsyncUpdateSearchResults(DateTime startDate, DateTime endDate, string selectedTypes)
{
int[] types = selectedTypes.Split(",").Select(x => int.Parse(x)).ToArray();

var inventory = await _itemService.GetFiltered(types, null, null, null, null, null, null, startDate, endDate.ToUniversalTime(), null, null, null, null, null, null, null);

if (inventory != null)
{
SearchResultsGridPartialModel = new SearchResultsGridPartialModel();
SearchResultsGridPartialModel.TotalCount = inventory.TotalCount;
SearchResultsGridPartialModel.TotalPages = inventory.TotalPages;
SearchResultsGridPartialModel.PageNumber = inventory.PageNumber;
SearchResultsGridPartialModel.Items = inventory.Items;
}

var myViewData = new ViewDataDictionary(new Microsoft.AspNetCore.Mvc.ModelBinding.EmptyModelMetadataProvider(), new Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary()) { { "SearchResultsGridPartialModel", SearchResultsGridPartialModel } };
myViewData.Model = SearchResultsGridPartialModel;

PartialViewResult result = new PartialViewResult()
{
ViewName = "SearchResultsGridPartial",
ViewData = myViewData,
};

return result;
}

我现在可以通过ajax GET调用此处理程序,并使其返回部分的HTML。然后,我可以按预期设置部分的 div和部分刷新。

这是我正在进行的AJAX调用:
var jsonData = { "startDate": startDate, "endDate": endDate, "selectedTypes": selectedTypesAsString };

$.ajax({
type: 'GET',
url: "searchresults/?handler=AsyncUpdateSearchResults",
beforeSend: function (xhr) {
xhr.setRequestHeader("XSRF-TOKEN", $('input:hidden[name="__RequestVerificationToken"]').val());
},
contentType: 'application/json; charset=utf-8"',
data: jsonData,
success: function (result) {
$("#searchResultsGrid").html(result);
},
error: function (error) {
console.log(error);
}
});

关于asp.net-core-2.0 - 如何从Core 2 Razor页面ViewModel处理程序返回部分 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49177092/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com