答案 0 :(得分:0)
如果要在获取部分视图时直接初始化页面,请尝试将以下两行代码放入部分视图主视图的get请求中。 More关于部分视图
ViewData["Worker"] = new SelectList(_context.People, "Id", "FIO");
ViewData["Proposal"] = new SelectList(_context.Proposals, "Id", "Id");
或者您可以使用ViewComponent而不是Partial View从视图组件类中的Invoke方法获取下拉列表的填充数据。尝试使用下面的代码
ViewComponent.cs
public class AddPeopleToCountryViewComponent:ViewComponent
{
private readonly MVCDbContext _context;
public AddPeopleToCountryViewComponent(MVCDbContext context)
{
_context = context;
}
public async Task<IViewComponentResult> InvokeAsync(
int maxPriority, bool isDone)
{
ViewData["Customer"] = new SelectList(_context.Customer, "Id", "Name");
ViewData["Country"] = new SelectList(_context.Country, "Id", "Id");
return View();
}
}
ViewComponent的Default.cshtml
<form>
<div class="form-group">
<label class="col-form-label">People</label>
<select class="form-control" asp-items="@ViewBag.Customer"></select>
</div>
<div class="form-group">
<label class="col-form-label">Country</label>
<select class="form-control" asp-items="@ViewBag.Country"></select>
</div>
<div class="form-group">
<label class="col-form-label">Comment</label>
<input type="text" class="form-control" id="commentVchasno">
</div>
代替主视图模式中的PartialView
<div class="modal-body">
@await Component.InvokeAsync("AddPeopleToCountry", new { })
</div>