【发布时间】:2021-03-05 18:58:30
【问题描述】:
为什么列表newsletterSubComponents 没有传递给IActionResult。任何人都可以帮忙吗?我知道有一个选项BindProperty,但我不能使用它,因为这个列表来自部分视图。我只能修改正在传递给 partial_view 的模型内部的列表。
模型列表
List<NewsletterSubComponents> newsletterSubComponents = {get; set;}
部分视图
@{
Model.newsletterSubComponents.Add(new Models.NewsletterSubComponents() { NewPlantArticleId = 0 });
Model.newsletterSubComponents.Add(new Models.NewsletterSubComponents() { NewPlantArticleId = 2 });
}
@for (var i = 0; i < Model.newsletterSubComponents.Count; ++i)
{
<select class="form-control Shoplist News-plant-select_1 mt-2" data-search="true" asp-for="@Model.newsletterSubComponents[i].NewPlantArticleId">
<option value="0">Bitte auswählen</option>
</select>
}
控制器
public IActionResult OnPostUpdateComponent(NewsletterComponents component, int? newsId, int? shortArticleId,
List<NewsletterSubComponents> newsletterSubComponents, int? newPlant1, int? newPlant2, int? newPlant3)
{
var dbComponent = _context.NewsletterComponents.Find(component.NewsletterComponentId);
if (dbComponent == null)
{
return RedirectToPage("./Index");
}
dbComponent.NewsId = newsId;
dbComponent.ShortArticleId = shortArticleId;
dbComponent.newsletterSubComponents = component.newsletterSubComponents;
dbComponent.NewsletterMoreLink = component.NewsletterMoreLink;
dbComponent.CustomLinkText = component.CustomLinkText;
dbComponent.NewsleterComponentText = component.NewsleterComponentText;
dbComponent.NewsletterComponentHeadline = component.NewsletterComponentHeadline;
dbComponent.EditedBy = User.Identity.Name;
dbComponent.EditedDate = DateTime.Now;
_context.Update(dbComponent);
_context.SaveChanges();
UpdateNewsletterHtml((int)dbComponent.BelongsToNewsletterId);
return RedirectToPage(new { id = dbComponent.BelongsToNewsletterId });
}
调试时newsletterSubComponents参数为空!
【问题讨论】:
-
我不明白你的问题,问题是什么?在控制器中,newsletterSubComponents 为空?
-
@nalnpir 是的,
newsletterSubComponents为空
标签: c# asp.net-mvc asp.net-core razor-pages