フォームを表示するためにインデックス ページで使用している部分ビューがあります。インデックス ページのドロップダウン メニューから項目を選択すると、対応するフォーム データと共に部分ビューが読み込まれます。送信時にフォームを検証する必要がありますが、エラーを表示するときにページを正しくロードするコントローラーから何を返せばよいかわかりません。送信ボタンは現在部分ビューにあります。(送信をインデックス ページに移動しようとしましたが、フォームから何も返されませんでした。) 検証エラーがある場合、部分ビューは読み込まれますが、インデックス ビューのドロップダウン メニューは読み込まれません。この問題に対するいくつかの解決策を見てきましたが、おそらくドロップダウンが原因で、この状況で機能したものはありません。どんな助けでも大歓迎です。HTML が役立つかどうか教えてください。この投稿の書式設定に問題がありました。
コントローラ:
public class PrinterSettingsController : Controller
{
public ActionResult Index()
{
ViewBag.Areas = db.Areas.ToList();
PopulateDocumentTypeViewBag();
return View();
}
public ActionResult AreaDocumentSettingsList(int areaId = 0)
{
PopulateDocumentTypeViewBag();
//get area, contains list of document settings
}
return PartialView("_AreaDocumentSettingsList", selectedArea);
}
[HttpPost]
public ActionResult AreaDocumentSettingsList(Area selectedArea)
{
if (IsPrinterValid(selectedArea.PrinterName) == false)
{
ModelState.AddModelError(string.Empty, "Incorrect printer path entered.");
}
if (ModelState.IsValid)
{
//do some stuff, save the new records to the database
db.Entry(originalAreaRecord).CurrentValues.SetValues(selectedArea);
db.SaveChanges();
//if everything saves fine, go to a different page
return RedirectToAction("Index", "Workorder");
}
//if there are errors -- this part needs to be changed -- show errors in partial view, but also display view it's nested inside of
return View("_AreaDocumentSettingsList", selectedArea);
}