@ Утилиты Url.Content и @Href в ASP.NET MVC работают некорректно в одной ситуации. Это ситуация, когда на локальном хосте, и она размещается в IIS, а не на IIS Express, поэтому URL-адрес выглядит как-то: http://localhost/MyApp/index-hr вместо, например, http://localhost:12345/index-hr. Это, как я называю мой сценарий:@ Url.Content и @Href не работают корректно, когда URL-адрес переписан.
<script src='@Href("~/Scripts/toastr/toastr.js")' type="text/javascript"> </script>
Я также попытался:
<script src='@Url.Content("~/Scripts/toastr/toastr.js")' type="text/javascript"></script>,
и:
<script src='~/Scripts/toastr/toastr.js' type="text/javascript"></script>
Это решает Url большой за исключением ситуации, когда URL является чем-то вроде: http://localhost/MyApp/index-hr
. Мой URL-адрес /index-hr
переписан и сопоставляется с контроллером Home
и действием HomeIndex
. Я заметил, что он разрешает ОК, когда URL-адрес равен http://localhost/MyApp/Home
, поэтому, возможно, это не проблема из-за дополнительной косой черты (когда приложение размещено на локальном IIS), а потому, что URL-адрес переписан. Другие страницы с переписанным URL-адресом загружают toast.js OK, но у них более глубокие ссылки, но в этой ситуации он разрешает toast.js
по этому адресу: http://localhost/Scripts/toastr/toastr.js
, что приводит к 404 курсу. Он должен решить, чтобы: http://localhost/MyApp/Scripts/toastr/toastr.js
Мне лично нравится «/Scripts/toastr/toastr.js», который берет корни в качестве родительской папки. и в любой ситуации он работает правильно –
Пробовал. Не работает. Не работает в ситуациях, когда URL-адрес http: // localhost/MyApp/Home, даже если он переписан не работает http: // localhost/MyApp/index-hr, и он не работает с полным непереписанным URL-адресом с действием и контроллером указанный: http: // localhost/Multiweb/Home/HomeIndex –
Я бы сделал, как сказал @UbiquitousDevelopers, и это должно работать нормально. Один улов - это ''/Scripts/.... "' зависит от структуры вашей папки. Просто перетащите файл js в свое представление и проверьте путь, который он генерирует, и используйте тот же путь в 'src'. Или просто попробуйте использовать '@ Scripts.Render (" ~/Scripts/toastr/toastr.js ")', хотя '@ Scripts.Render' предназначен для объединения целей. – Developer