1

私はこれを渡します:

<%: Html.ActionLink("Edit", "EditCRMRequest", "CRM", new { Id = item.Id })%>

そして私はブラウザに入っています:

http://something.com/CRM/EditCRMRequest?Length=3

エラーコード付き:

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

これをブラウザで明示的に記述した場合、正常に機能します。

http://something.com/CRM/EditCRMRequest?Id=3
4

1 に答える 1

5

正しい方法:

<%: Html.ActionLink("Edit", "EditCRMRequest", "CRM", new { Id = item.Id },null)%>

このようなオーバーロードメソッドはありません:

Html.ActionLink(string text, string action, string controller, object routeValues)

上記のように書くと、Lenght=3は「CRM」を表します。コントローラ名はrouteValuesとして動作します

正しい方法は次のとおりです。

Html.ActionLink(string text, string action, string controller, object routeValues, object htmlAttributes)
于 2013-02-04T13:26:05.197 に答える