J'ai travaillé principalement sur des applications de bureautique et j'ai pensé apprendre le développement Web en utilisant ASP.Net MVC5 et en parcourant le livre par Jon Galloway. Donc, je lisais sur la façon dont vous pouvez passer les paramètres aux méthodes d'action en utilisant la chaîne de requête commeParamètre de chaîne de requête par rapport au paramètre habituel ASP.Net MVC 5
/magasin/Parcourir? Genre = Disco
ou les intégrer directement dans l'URL comme
/Store/Détails/5
Il est maintenant en dessous du code du contrôleur que j'ai écrit (tiré du livre):
namespace MvcMusicStore.Controllers
{
public class StoreController : Controller
{
// GET: Store
public string Index()
{
return "Hello from Store.Index()";
}
public string Browse(string genre)
{
string message = HttpUtility.HtmlEncode("Store.Browser, Genre = " + genre);
return message;
}
public string Details(int id)
{
string message = "Store.Details, ID = " + id;
return message;
}
}
}
L'URL s'ouvre correctement et les actions renvoient le message comme prévu. Mais juste pour essayer, j'essayé de passer la valeur de genre en l'intégrant dans l'URL comme
/magasin/Parcourir/Rap
mais cela ne fonctionne pas comme il l'a fait pour les détails() action. Je pensais que cela peut avoir à faire quelque chose avec le type de données genre, donc j'essayé de changer le type d'identification des données dans les détails() à chaîne comme ci-dessous:
public string Details(string id)
{
string message = "Store.Details, ID = " + id;
return message;
}
}
et a ouvert l'url
/Magasin/Détails/5
et retourne action Details() message avec identifiant 5, mais quand je fais la même chose pour l'action Parcourir()
/Store/Browse/Rap
l'action ne renvoie pas le message avec la valeur de genre "Rap". J'ai essayé de passer la valeur du genre et j'ai enlevé le codage html pour voir si cela avait quelque chose à voir avec ça, mais ce n'était pas le cas.
J'ai regardé l'article here mais cela n'a pas aidé non plus. Tous les commentaires ont apprécié.
Merci, cela explique la confusion. – Naphstor