@addTagHelper "*, Microsoft.AspNetCore.Mvc.TagHelpers"
@model Task<SocialManager.Model.MSEData>
<article class="social_list" style="display: inline-block">
<select id="social_list_lb">
<option value="None">-- Select --</option>
@foreach (var ll in Model.SocialListViewModel)
{
<option value="@ll.ListName">@ll.ListName</option>
}
</select>
<button class="add_field" data-field-key="@Model.Id">ADD</button>
</article>
public async Task<MSEData> GetMSEDataByValue(long id)
{
var v = MSEData.Where(a => a.Id == id).FirstOrDefault();
var t = TrioData.Where(u => u.MSEDataId == v.Id).ToList();
v.TrioField = t;
v.SocialListViewModel = SocialListDataContext.SocialListViewModelList2;
await GetXMLData();
v.TrioShows = vm.trio;
return v;
}
public IViewComponentResult Invoke()
{
var MSEDatas = _MSEData.GetMSEDataByValue(SocialController.holdVal);
return View(MSEDatas);
}
VIZTrioMse vm = new VIZTrioMse();
public async Task GetXMLData()
{
string serviceDocUri = "http://127.0.0.1:5555";
await vm.GetShows(serviceDocUri);
}
我已将模型从MSEData
更改为Task<-MSEData->
但我收到此错误消息:Model.SocialListViewModel
'任务'不包含'TrioShows'的定义,没有 扩展方法'TrioShows'接受类型的第一个参数 '任务'可以找到
除了Id之外,我也得到了所有其他属性。
答案 0 :(得分:1)
请勿使用Task<>
作为模型。使用模型本身:
@model SocialManager.Model.MSEData
您不应该向视图发送任务。您应等待任务并将结果发送到您的视图。
编辑:鉴于您发布的控制器操作,v
不能是Task<>
的实例,或者该代码根本无法编译。 v
是MSEData
的一个实例,因此您的模型应该为MSEData
。
再次编辑,因为您不断更改问题:我对此并不是100%熟悉:
public IViewComponentResult Invoke()
{
var MSEDatas = _MSEData.GetMSEDataByValue(SocialController.holdVal);
return View(MSEDatas);
}
但似乎你应该等待 async
操作:
public async Task<IViewComponentResult> InvokeAsync()
{
var MSEDatas = await _MSEData.GetMSEDataByValue(SocialController.holdVal);
return View(MSEDatas);
}
也使用InvokeAsync()而不是Invoke()