私は MVC を始めて数週間になりますが、毎日、何か新しいものが現れて、かなり奇妙に感じます。だから、私は自分が直面している問題への答えを見つけようとします。それにもかかわらず、現在の問題については、ここでスタックオーバーフローで、またはグーグルでそのことについてのどこにも降下の答えが見つからないようです...
HTML.RenderAction メソッドを使用してコントローラーにパラメーターを渡す際に問題が発生しています。何らかの理由で、パラメーターは RouteData で正しく終了しますが、「関数パラメーター」は null です。ルーティング マップに関係していると思うので、ここに投稿してさらに情報を提供したいと思います。
私のルートマップ(とりわけ、現在のアクションがこのルートを使用していることはわかっています):
routes.MapRoute("Default","{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = "" },
null,
new[] { "Web.Controllers" }
);
私のコントローラーアクション:
public ActionResult GeneralManagementDetail(int? id)
{
//dostuff
}
RenderAction 呼び出し:
<% Html.RenderAction("GeneralManagementDetail", "Person", new { id = 4 }); %>
もちろん、「4」は現在ハードコードされた値であり、そこにある foreach ループを含むオブジェクトの ID になります。
さて、この結果、コントローラの「int id」は NULL ですが、RouteData を「QuickWatching」すると、キーと値のペア「id,4」が確実に含まれています...