У меня есть PartialView с моделью типа Machine
, которая отображает строку в таблице.
@model GPT.Core.Models.Machine
<tr>
@*
some html
*@
</tr>
Это частичное представление работает нормально, когда отображается в цикле в родительском представлении, например так:
@foreach (var machine in pl.Machines)
{
// some code
// ...
await Html.RenderPartialAsync("_MachineTableRow", machine);
}
Я использую AJAX-запрос на клиенте для обновления некоторых данных и хочу также обновить соответствующую строку данных после этого.Так что мой AJAX-запрос вызывает
public async Task<PartialViewResult> OnPostAnalyzeMachineJournalAsync()
{
// some code
// ...
var machine = GetUpdateMachinePseudoMethod();
return Partial("_MachineTableRow", machine);
}
Но это вызывает исключение:
System.InvalidOperationException: The model item passed into the ViewDataDictionary is of type 'GPT.Core.Models.Machine', but this ViewDataDictionary instance requires a model item of type 'GPT.Web.Pages.IndexModel'.
Я не уверен, к какому ViewDataDictionary
это исключение относится.Но даже если это не имеет смысла для меня и просто из любопытства, я предоставил IndexModel
, который упоминается в исключении.
await Html.RenderPartialAsync("_MachineTableRow", this);
Тогда есть еще одно исключение, которое говорит мне точно то же самоеНапротив, теперь я совершенно запутался:
System.InvalidOperationException: The model item passed into the ViewDataDictionary is of type 'GPT.Web.Pages.IndexModel', but this ViewDataDictionary instance requires a model item of type 'GPT.Core.Models.Machine'.
Может кто-нибудь сказать, почему он не работает, когда я передаю экземпляр Machine
, как он определен в частичном файле cshtml и нравитсятакже упоминается во втором исключении?Что мне здесь не хватает?