説明すると、私の初期設定は次のとおりです。
コントローラ:
Library => Controllers => ParametersController.cs
Library => Controllers => ReaderLevelController.cs
Library => Controllers => ResourceTypeController.cs
ビュー:
Library => Views => Parameters => Index.cshtml
Library => Views => ReaderLevel => Index.cshtml
Library => Views => ResourceType => Index.cshtml
各ビューは、次のように適切なモデルを参照しました。
@model IEnumerable<Library.DAL.PrmTbl_Level>
そして、各コントローラーにはActionResult
for Index() が含まれていましたが、それ以外にはほとんど含まれFormCollections
ていませんでした。画面は正常に表示され、db をプル、編集、更新しても問題ありませんでした。
ビューをよりわかりやすい階層に変更したかったので、ビュー ファイルを次のように移動しました。
ビュー:
Library => Views => Parameters => Index.cshtml
Library => Views => Parameters => ReaderLevel => Index.cshtml
Library => Views => Parameters => ResourceType => Index.cshtml
ParametersController.cs
次に、「親」ファイルである新しい ActionResults を反映するようにファイルを更新しました。
public ActionResult ResourceType() { return View("ResourceType/Index"); }
ただし、foreach ループが関連するモデルを実行しようとするとエラーがスローされ、null として返されるため、新しい「サブ」画面 (この例では ReaderLevel と ResourceType) は表示されません。ビューファイルの場所を変更するとデータアクセスの実行可能性がどのように変化するかについて混乱しています(私の考えでは、モデルは@model IEnumerable<Library.DAL.PrmTbl_Level>
変更されない ab パスを介して入力されます)。
ビューの場所を変更すると、コントローラーとモデルへのアクセスにどのように影響するかを誰かが説明できますか?
EDIT
私の現在のセットアップ(上記のファイル構造):
パラメータコントローラ
public ActionResult Index() {
ViewBag.Title = "Parameters";
return View();
}
public ActionResult ResourceType() {
return RedirectToAction("ResourceType");
}
これで適切な URLが表示されますが、 「Firefox は、サーバーがこのアドレスへのリクエストを決して完了しない方法でリダイレクトしていることを検出しました。」RedirectToAction を使用"ResourceType","Index"
すると URL '/Index/ResourceType' に解決され、リソースが見つかりません。