Route avec Deux paramètres optionnels dans MVC3 ne fonctionne pas
J'ai un des types suivants d'url utilisé dans mon Application.
localhost/admin/userdetail/id
localhost/admin/userdetail/id/vrai
localhost/admin/userdetail/id/vrai/succès
Voici mon Admin Contrôleur
bool inSaveAction, chaîne d'état sont facultatifs
[Authorize]
public ActionResult UserDetail(string Id, bool inSaveAction, string status)
{
}
[HttpPost, Authorize, ValidateAntiForgeryToken]
public ActionResult SaveUserDetail(UserDetailViewModel viewModel)
{
User userToSave = new User();
AdminService.UpdateUser(userToSave);
//This is calling the above function as it sending all 3 params
return RedirectToAction("UserDetail", new { Id = viewModel.Id,
inSaveAction = true, status = "success" });
}
Ci-dessous affaire n'est pas de travail
@Html.ActionLink("DisplayName", "UserDetail", new { id = Model.Id })
Mondiale.asax
routes.MapRoute("UserDetail",
"UserDetail/{id}",
new
{
controller = "Admin",
action = "UserDetail",
id = UrlParameter.Optional
}
);
Comment puis-je faire inSaveAction & statut en tant que paramètre facultatif pour mon UserDetail action?
Vous devez vous connecter pour publier un commentaire.
Vous allez rater les paramètres de votre itinéraire config. Afin de faire ce travail avec différents paramètres optionnels (comme dans le Phil Haack du post), vous devez définir plusieurs itinéraires
Et ensuite créer des liens avec:
Vous devez également définir les paramètres optionnels comme nullable, sinon vous obtiendrez des exceptions si l'id ou inSaveAction sont manquants.
Vous pouvez utiliser l'approche introduite ici. Il vous permet de définir un itinéraire comme ce
);