嘿伙计们,我因为尝试访问用户控件中的功能而被困了一周。 我使用razor语法(webmatrix)
我有 2 个 ascx 文件
hoop.ascx:
<%@ Control Language="VB" ClassName="basic" %>
<script runat="server">
Function Random(from, to)
Randomize
Random = 1 + INT(RND(from)*to)
End Function
</script>
webform.aspx:
<%@ Page Language="VB" Debug="true" aspcompat=true %>
<%@ Register TagPrefix="wikibooks" TagName="basic" Src="hoop.ascx" %>
<%@ Register TagPrefix="connectie" TagName="con" Src="connectie.ascx" %>
<html>
<head>
<title>Testing it</title>
</head>
<body>
<wikibooks:basic runat="server"/>
<connectie:con runat="server" />
<%
Response.Write(Random(1, 1000))
%>
</body>
</html>
有人可以帮我解决这个问题吗(我该如何处理)
当我这样做时,我收到错误:
[BC30108] 'random' is a type and cannot be used as an expression
最佳答案
这对我来说已经有一段时间了,所以,根据需要进行改进:
强烈建议您重命名自己的
Functions
- 使用内置名称 (.Net) 以外的名称。所以在你的 hoop.ascxUserControl
中:Public Shared Function RandomGen(fromValue As Integer, toValue As Integer) 'Random is a built-in class in .net Dim rnd As New Random() RandomGen = rnd.Next(fromValue, toValue) End Function
您的hoop.ascx
UserControl
ClassName
是basic
声明如下:<%@ Control Language="VB" ClassName="basic" %>
因此,要在 webform.aspx 中调用您的 (
Shared
) 函数:<%=basic.RandomGen(100, 200)%>
顺便说一句,这不是 razor
语法 - 这是 WebForms
句法。 Razor 将是vbhtml
或cshtml
(对于 C#)。
第...
关于asp.net - 使用用户控件中的函数(razor 语法),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41767041/