0

作成しているアプリケーションでEditメソッドを呼び出す際に問題が発生します。ビューでActionLinkをクリックすると、注文番号がパラメーターとしてEditメソッドに渡され、フィールドに入力された注文の情報を含む編集ページが開きます。ただし、リンクをクリックするとエラーが発生します。

パラメータディクショナリには、'AddressUpdater.WebUI.Controllers.OrderController'のメソッド'System.Web.Mvc.ViewResult Edit(Int32)'のnull許容型ではないタイプ'System.Int32'のパラメータ'orderNum'のnullエントリが含まれています。オプションパラメータは、参照型またはnull許容型であるか、オプションパラメータとして宣言されている必要があります。パラメータ名:パラメータ

ただし、パラメータはURLに存在します。関連する方法は次のとおりです。

public ViewResult Edit(int orderNum)
{
    Order order = repository.Orders.First(o => o.OrderNumber == orderNum);
    return View(order);
}

パラメータをint? orderNumページに変更すると、エラーなしでレンダリングされますが、データがありません。

4

1 に答える 1

1

アクションメソッドへのデータの送信Edit、つまりアクションリンクに問題がある可能性があります。FirebugやChromeDevツールなどのdevtoolを開くだけで、サーバーに送信されているものを検査できます。

URLが次のようになったら

Edit?OrderNumber=1234

次に、次のようなActionメソッドに一致するパラメータが必要です。

public ViewResult Edit(int orderNumber) {...}

その代わり

Edit(int orderNum){...}

動作しません。基本的に、URLパラメーター名とアクションメソッドパラメーター名は一致する必要があります(大文字と小文字は区別されませんが、名前は一致する必要があります)

于 2012-10-05T20:55:54.247 に答える