[解決済み] MVC : パラメータ辞書に、非 null 型 'System.Int32' のパラメータ 'k' の null エントリが含まれています。
2022-02-26 12:59:30
質問
を始めたばかりです。
MVC
. 私のアプリケーションでは、データベースからデータを取得しています。しかし、私のアプリケーションを実行すると、次のようなエラーが表示されます。
これは私のURLです
http://localhost:7317/Employee/DetailsData/4
Exception Details: System.ArgumentException: The parameters dictionary contains a null entry for parameter 'k' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult DetailsData(Int32)' in 'MVCViewDemo.Controllers.EmployeeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter.
Parameter name: parameters
これは私の web.config ファイルのコードです。
<connectionStrings>
<add name="EmployeeContext" connectionString="Server=.;Database=mytry;integrated security=true; ProviderName=System.Data.SqlClient"/>
</connectionStrings>
これは私の社員モデルクラス(Employee.cs)です。
[Table("emp")] /* to map tablename with our class name*/
public class Employee
{
public int EmpId { get; set; }
public string Name { get; set; }
public string Gender { get; set; }
public string City { get; set; }
}
私の EmployeeContext.cs モデルクラス
public class EmployeeContext:DbContext
{
public DbSet<Employee> Employees { get; set; }
}
私のEmployeeController.cs
public ActionResult DetailsData(int k)
{
EmployeeContext Ec = new EmployeeContext();
Employee emp = Ec.Employees.Single(X => X.EmpId == k);
return View(emp);
}
と私の見解
<h2>DetailsData</h2>
@Model.Name<br />
@Model.City<br />
@Model.Gender<br />
@Model.EmpId
解決方法は?
このように定義されたデフォルトルートを使用しているようです。
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
そのルートで重要なのは
{id}
の部分です。アクションメソッドを見てみると、パラメータは
k
ではなく
id
. アクションメソッドをこれに変更し、ルートパラメータと一致するようにする必要があります。
// change int k to int id
public ActionResult DetailsData(int id)
もし、パラメータをkのままにしたいのであれば、URLをこう変更します。
http://localhost:7317/Employee/DetailsData?k=4
また、接続文字列に問題があるようです。web.configで、接続文字列をこれに変更する必要があります(haim770が削除した別の回答で提供しています)。
<connectionStrings>
<add name="EmployeeContext"
connectionString="Server=.;Database=mytry;integrated security=True;"
providerName="System.Data.SqlClient" />
</connectionStrings>
関連
-
[解決済み】WebForms UnobtrusiveValidationModeは、jqueryのScriptResourceMappingを必要とする
-
[解決済み] 保護レベルによりアクセス不能になりました。
-
[解決済み】パディングが無効で、削除できない?
-
[解決済み] 'SubSonic.Schema .DatabaseColumn' 型のオブジェクトをシリアライズする際に、循環参照が検出されました。
-
[解決済み】ソケットのアドレス(プロトコル/ネットワークアドレス/ポート)は、通常1つしか使用できない?
-
[解決済み】値が期待した範囲に収まらない
-
[解決済み】別のスレッドがこのオブジェクトを所有しているため、呼び出し側のスレッドはこのオブジェクトにアクセスできない
-
[解決済み】ユーザー設定値を別のユーザー設定値で設定する
-
[解決済み】データが存在しないのに読み込もうとする試みが無効である
-
[解決済み】Nullableオブジェクトは値を持たなければならない?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】GDI+、JPEG画像をMemoryStreamに変換する際にジェネリックエラーが発生しました。
-
[解決済み] [Entity Framework 4.1でエンティティに関連オブジェクトを追加する際に、エンティティオブジェクトをIEntityChangeTracker.の複数のインスタンスから参照できない。
-
[解決済み】ソケットのアドレス(プロトコル/ネットワークアドレス/ポート)は、通常1つしか使用できない?
-
[解決済み】C# ASP.NET使用時に「WebClientのリクエスト中に例外が発生しました。
-
[解決済み] DBNullから他の型にオブジェクトをキャストすることができない
-
[解決済み] EntityTypeにキーが定義されていないエラー
-
[解決済み】Visual Studio: 操作を完了できませんでした。パラメータが正しくありません
-
[解決済み】URLから画像をダウンロードする方法
-
[解決済み】別のスレッドがこのオブジェクトを所有しているため、呼び出し側のスレッドはこのオブジェクトにアクセスできない
-
[解決済み】ユーザー設定値を別のユーザー設定値で設定する