誰かが何が問題なのかを見つけて、コントローラーがどのルート定義を使用する必要があるかをどのように知っているかを説明してもらえますか (多くの場合、URI は複数のルート定義に適合する可能性があるため)。
これが私の問題です...
コントローラーの方法:
[HttpGet]
public ActionResult PreencherFormulario(int idPacientePesquisa, int idFormularioPesquisa)
ルート (Global.asax で定義されているすべて):
protected void Application_Start()
{
RouteTable.Routes.MapRoute(
"Busca",
"{controller}/{action}/{SearchString}/{SearchSubString}/{id}"
);
RouteTable.Routes.MapRoute(
"Participacao",
"{controller}/{action}/{id}"
);
RouteTable.Routes.MapRoute(
"ParticipacaoPesquisa",
"{controller}/{action}/{idPesquisa}/{nrProntuario}",
null,
new { idPesquisa = @"\d+" }
);
//!!! This should be the one used...
RouteTable.Routes.MapRoute(
name: "PreencherForm",
url: "{controller}/{action}/{idPacientePesquisa}/{idFormularioPesquisa}",
defaults: new { idPacientePesquisa = 1, idFormularioPesquisa = 1 },
constraints: new { idPacientePesquisa = @"\d+", idFormularioPesquisa = @"\d+" }
);
RouteTable.Routes.MapRoute(
"AdicionarRegraCID",
"{controller}/{action}/{a}/{b}/{c}",
new { controller = "Pesquisas", action = "AdicionarRegraCID", MetodoResultado = "", MetodoCancelar = "" }
);
URL:
http://localhost:61404/RealizacaoPesquisa/PreencherFormulario/1/1
エラー:
The parameters dictionary contains a null entry for parameter 'idPacientePesquisa' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult PreencherFormulario(Int32, Int32)' in 'Prometheus.Controllers.RealizacaoPesquisaController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter.
Nome do parâmetro: parameters