使用用户控件中的函数(razor 语法)
Using function from user control (razor syntax)
大家好,我因为尝试访问在用户控件中创建的功能而被困了一个星期。
我使用剃刀语法 (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
- 使用 built-in 名称以外的名称 (.Net)。所以在你的 hoop.ascx UserControl
:
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" %>
因此从中调用您的 (Shared
) 函数 in webform.aspx:
<%=basic.RandomGen(100, 200)%>
顺便说一句,这不是 razor
语法 - 这是 WebForms
语法。 Razor 将是 vbhtml
或 cshtml
(对于 c#)。
第...
大家好,我因为尝试访问在用户控件中创建的功能而被困了一个星期。 我使用剃刀语法 (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
- 使用 built-in 名称以外的名称 (.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" %>
因此从中调用您的 (
Shared
) 函数 in webform.aspx:<%=basic.RandomGen(100, 200)%>
顺便说一句,这不是 razor
语法 - 这是 WebForms
语法。 Razor 将是 vbhtml
或 cshtml
(对于 c#)。
第...