削除用の scaffold 削除ビューを作成しましたが、機能しません。デバッグ中に、レコードの正しい ID がコントローラーに渡されないことがわかりました。常に ID として 0 を渡し、結果は例外です (ystem.NullReferenceException は、ユーザー コード Message=Object reference not set to an object によって処理されませんでした。)。
しかし、ビューの送信ボタンには、正しい ID を持つ正しい URL が表示されます。
コントローラ:
public ActionResult DeleteSubject(int id)
{
try
{
// returns the View
}
catch (Exception e)
{
// Handle and log the exception
}
}
[HttpPost]
public ActionResult DeleteSubject(SubjectModel subject)
{
try
{
// Call methods for delete
}
catch (Exception e)
{
// Handle and log the exception
}
}
意見:
@model LMS.Models.SubjectModel
// ... form elements go here
@using (Html.BeginForm()) {
<input type="submit" value="Delete" />
}
[HttpPost] メソッドをブレークポイントでデバッグすると、メソッドが引数として受け取るオブジェクトが値で初期化されていないように見えます。ID フィールドには 0 を表示し、その他のフィールドには null を表示します。
ビューの再作成、コントローラーメソッドの書き換え、属性の変更などに取り組みましたが、それでも問題が発生します。ご意見をお待ちしております。
(ところで、Create、List、および Edit の scaffold ビューを作成しました。これらは完全に機能しています。)
ありがとう、
チャトゥール