asp.net - 使用用户控件中的函数(razor 语法)

标签 asp.net vb.net razor user-controls

嘿伙计们,我因为尝试访问用户控件中的功能而被困了一周。 我使用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

最佳答案

这对我来说已经有一段时间了,所以,根据需要进行改进:

  1. 强烈建议您重命名自己的Functions - 使用内置名称 (.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
    
  2. 您的hoop.ascx UserControl ClassNamebasic声明如下:

    <%@ Control Language="VB" ClassName="basic" %>

    因此,要在 webform.aspx 中调用您的 ( Shared ) 函数:

    <%=basic.RandomGen(100, 200)%>

顺便说一句,这不是 razor语法 - 这是 WebForms句法。 Razor 将是vbhtmlcshtml (对于 C#)。

第...

关于asp.net - 使用用户控件中的函数(razor 语法),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41767041/

相关文章:

vb.net - .DrawImage 具有不透明度?

asp.net-mvc - 适用于 asp.net MVC 和 razor View 的免费 UI 模板

javascript - 如何将我选择的 GridView 行放入 Javascript 变量中?

c# - MVC3 中模型 DisplayFormat 的 DataFormat 错误

c# - ASP.NET Membership Provider - 重置密码功能 - 电子邮件确认和密码更改

asp.net - Visual Studio 2008 - 解决方案而非项目的条件编译符号

asp.net - SessionState 和 ViewState 有什么区别?

vb.net - 用代码在 vb.net 中创建饼图

c# - 如何读取 web.config 文件中的 appSettings 部分?

c# - 有没有办法导航到接口(interface)背后方法的实际实现?