[英]How to call a list declared in VB.net from aspx
我正在嘗試使用 vb.net 建立一個網站 ASP.net。 我正在嘗試使用 java 腳本從 ASPX 頁面訪問 VB.net 中聲明的列表,但不幸的是我不能。
這是我的后端代碼
Protected CustomerRoleTypes As New List(Of CustomerRoleType)
CustomerRoleTypes.Add("Junior")
function ValidateRoleType() {
const customerRoleTypes = "<%: string.Concat(",",CustomerRoleTypes )%>"; // not getting any values here
const restrictedCustomerRoles = customerRoleTypes.split(",");
return true;
}
如果有人建議我如何從 javascript function 訪問列表變量,我將不勝感激。 先謝謝了
在大多數情況下,您應該考慮設置 web 方法,然后從客戶端 js 代碼執行 ajax 調用。 這是做這些事情的“正常”方式。
但是,您當然可以使用客戶端“服務器”表達式作為示例嘗試。
您在 web 頁面上的代碼?
好吧,我不知道,看,也沒有你的 class 和列表。
但是,你可以這樣做:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
End Sub
Public Function MyFriendList() As String
Dim MyCoolFriends As New List(Of Person)
' add two people to the cool friends list
Dim OnePerson As New Person
OnePerson.FirstName = "Clark"
OnePerson.LastName = "Kent"
MyCoolFriends.Add(OnePerson)
OnePerson = New Person
OnePerson.FirstName = "Bruce"
OnePerson.LastName = "Wayne"
MyCoolFriends.Add(OnePerson)
Dim sResult = JsonConvert.SerializeObject(MyCoolFriends)
Return sResult
End Function
Class Person
Public FirstName As String
Public LastName As String
End Class
因此,您可以返回該人員“列表”(或在您的情況下為角色類型)。
然后在你的標記中,你可以像你一樣使用表達式,這樣說:
讓我們只需單擊一個按鈕進行測試,然后顯示我們列表中的第一個人。
<asp:Button ID="cmdShow" runat="server" Text="Show cool friends"
OnClientClick="ShowFriendsTest();return false" />
<script>
function ShowFriendsTest() {
MyFriendsRaw = '<%= MyFriendList() %>'
MyFriends = JSON.parse(MyFriendsRaw)
// show first person in list
OnePerson = MyFriends[0]
alert(OnePerson.FirstName + ' ' + OnePerson.LastName)
}
</script>
當我們運行上面的代碼時,我們會看到:
以上假設您使用某種序列化程序。
我用的是newtonsoft的json(沒有的話可以用nuget安裝)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.