Ich habe eine ASP.NET MVC-Ansicht (Razor) und am Ende der Datei, die ich einige Javascript in einem Abschnitt zu laden:Resolving Razor Javascript @ Url.Content Urmuster
@section FooterScripts{
<script>
$(function() {
// creates the data table
var ajaxUrl = '@Url.Content("~/Accounting/GetListAccounts")/';
});
</script>
<script src="~/Scripts/pages/list-account.js"></script>
}
Hier wird die Variable ajaxUrl
ist aufgelöst, so wird die Variable den Wert erhalten:
Nun list-account.js
Prototyp Muster verwendet und hat etwas Ähnliches:
! function($) {
"use strict";
var ListAccount = function() {
this.$window = $(window)
};
ListAccount.prototype.start = function() {
var $this = this;
var ajaxUrl = '@Url.Content("~/Accounting/GetListAccounts")/';
},
//init
$.ListAccount = new ListAccount, $.ListAccount.Constructor = ListAccount
}(window.jQuery),
//initializing
function($) {
"use strict";
$.ListAccount.start();
}(window.jQuery);
Mein Problem ist, dass hier die Variable ajaxUrl
nicht aufgelöst wird. Scheint wie Razor
@Url.Content
zu lösen die Variable sollte innerhalb des Codes sein.
Jede Problemumgehung oder Lösung, so dass meine
prototype javascript
Datei den @ Url.Content gelöst bekommt?
Razor-Code wird nicht in externen Dateien analysiert. –
@StephenMuecke kann ich diese Variable vorher deklarieren und an die Datei übergeben? – VAAA
Sicher. Solange wie in der Hauptansicht 'var ajaxUrl = '@ Url.Content (" ~/Accounting/GetListAccounts ") /';' ist, können Sie einfach 'ajaxUrl' in der externen Datei –