Dois-je utiliser Url.Content () ou ResolveUrl () dans mes vues MVC?
-
19-09-2019 - |
Question
Lorsque le code du bâtiment comme celui-ci:
<script type="text/javascript" src="<%=ResolveUrl("~/js/js.js")%>"></script>
ou
<input type="image" src="<%=ResolveUrl("~/img/submit.png")%>" />
Dois-je utiliser Url.Content
ou ResolveUrl()
? Quelle est la différence?
La solution
Si vous utilisez URL IIS Réécriture dans votre application MVC, par exemple le traitement interne http://yoursubdomain.example.com/MyController/MyAction comme http://hosted.example.com/yoursubdomain/MyController/MyAction , Url.Content () va générer un correct liaison du sous-domaine-parent. ResolveUrl () va générer un lien incorrect dans cette situation.
Autres conseils
Url.Content
est plus MVCish comme il est normal. ResolveUrl a été autour depuis le début d'ASP.NET.
Je préfère saisir la racine du site dans la variable locale et le réutiliser
<% var siteroot = Url.Content("~/") %>
<script type="text/javascript" src="<%: siteroot %>Script/jquery-1.4.1.js"></script>
<script type="text/javascript" src="<%: siteroot %>Script/jquery.validate.js"></script>
Il faut sauver quelques ms:)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow