第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

@Url.Content("~/") 在 JavaScript 文件中不起作用?

@Url.Content("~/") 在 JavaScript 文件中不起作用?

C#
四季花海 2022-11-22 15:40:52
我有一個(gè) ASP.NET CORE MVC 應(yīng)用程序,我在我的一個(gè)視圖中包含一個(gè) JavaScript 文件。JavaScript 用于頁(yè)面上的下拉菜單,調(diào)用控制器上的函數(shù)以獲取下拉菜單的數(shù)據(jù)。$(document).ready(function() {    $('#accounts').change(function() {        var url = '@Url.Content("~/")' + "GetMeters";        var ddlsource = "#accounts";        $.getJSON(url,            { accountId: $(ddlsource).val() },            function(data) {                var items = '';                $("#meters").empty();                $.each(data,                    function(i, meter) {                        items += "<option value='" + meter.value + "'>" + meter.text + "</option>";                    });                $('#meters').html(items);            });    });});單步執(zhí)行代碼,我注意到在 'var url = '@Url.Content("~/")' + "GetMeters";' 之后 被執(zhí)行時(shí),'url' 被設(shè)置為“@Url.Content("~/")GetMeters”。在 StackOverflow 上查看類似問(wèn)題,所以我嘗試只使用“~/GetMeters”,但它也不起作用。如果 url 設(shè)置為“ https://localhost:44344/Meters/GetMeters ”,我在控制器上的功能將被正確調(diào)用。解決此問(wèn)題的最佳方法是什么?謝謝!
查看完整描述

2 回答

?
繁花不似錦

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超4個(gè)贊

@Url.Content是一個(gè) Razor 插值指令,只會(huì)在 Razor 視圖或頁(yè)面文件 ( .cshtml) 中被解析。沒有其他東西通過(guò) Razor 視圖引擎,因此不能期望它在 CSHTML 文件以外的任何文件中工作。


有幾種方法可以在頁(yè)面加載時(shí)將服務(wù)器端數(shù)據(jù)傳遞給 JavaScript 文件——比 StackOverflow 答案中涵蓋的更多。對(duì)于您的特定情況,您似乎只需要將 URL 根傳遞給腳本,以便它可以調(diào)用端點(diǎn)。如果可能的話,通常最好在服務(wù)器端完全呈現(xiàn)操作 URL,而不是在客戶端構(gòu)建它們。為此,您可以使用以下方法之一。


1. 從引用這個(gè)文件的視圖中提供一個(gè)全局變量

SomeView.cshtml


<script>

window.Routes = {

    getMeters: '@Url.Action("GetMeters", "Meters")', // the GetMeters action on MetersController

    // add other routes here

};

</script>


<script src="@Url.Content("~/somescript.js")"></script>

一些腳本.js


$(document).ready(function() {

    var url = Routes.getMeters;

    // ...

});

2.讓腳本公開一個(gè)函數(shù)并從視圖中調(diào)用它

一些腳本.js


// This function replaces $(document).ready(...)

function initialize(getMetersRoute) {

    var url = getMetersRoute;

    // ...

}

SomeView.cshtml


<script src="@Url.Content("~/somescript.js")"></script>


<script>

$(document).ready(function() {

    initialize('@Url.Action("GetMeters", "Meters")');

});

</script>


查看完整回答
反對(duì) 回復(fù) 2022-11-22
?
慕姐4208626

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超7個(gè)贊

一種解決方案是在布局 cshtml 文件中創(chuàng)建一個(gè)包含您的 url 的變量,該文件在您使用 javascript 文件的任何地方使用,然后您可以簡(jiǎn)單地在 JS 文件中調(diào)用此變量。

例子 :

websiteUrl = '@Url.Content("~/")';

您只需要使用 websiteUrl。


查看完整回答
反對(duì) 回復(fù) 2022-11-22
  • 2 回答
  • 0 關(guān)注
  • 304 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)