2014-03-18 43 views
0

我是一个绝对的ASP新手,但具有非常强大的PHP/python背景,所以请耐心等待。 C#类通过串行连接与物理称重秤进行对话,并抓取重量(这部分作为独立的写入控制台的.exe文件运行良好)。但是,我不知道如何使用这个工作的C#类,并在我的ASP网页中使用它?如何在ASP网页中使用C#类的返回值

我有一个cs文件看起来像这样:

using System; 
using System.IO.Ports; 

namespace AppNamespace { 
public class App 
{ 
    static string _somevalue; 

    public static string AppDoSomething() 
    { 
        // Do some serial port stuff 
        _somevalue = "Hello World or some other value"; 
        return _somevalue; 
      } 
    } 
} 

这个类的伟大工程,做什么是应该,我已经导出的项目,并创建了一个.dll文件库,并把它在网站的“bin”文件夹中。

现在如何在我的网页中使用“AppDoSomething()”功能?用PHP我会做类似如下:

<?php 
$value = AppNamespace\App::AppDoSomething(); 
echo $value; 
?> 

我怎样才能使用ASP来完成同样的事情?我喜欢用C#编写,但不明白如何将C#类,函数与基于asp的网页集成,并使用它们。

+2

如果你可以让DLL,那么你可以到DLL添加引用,然后在你的ASP网站的服务器端代码访问诸如AppNamespace.App.AppDoSomething功能() 。 –

+0

该DLL正坐在bin文件夹中。当我尝试访问命名空间/类/功能时,asp页面返回错误@MehbubeArman –

回答

1

Web窗体的方法是这样的......

MyPage.aspx

<asp:Literal runat="server" id="MyLiteral" /> 

MyPage.aspx.cs

protected void Page_Load(object sender, EventArgs e) 
{ 
    if(!IsPostBack) 
    { 
     MyLiteral.Text=AppNamespace.App.AppDoSomething(); 
    } 
} 

虽然稍微PHPish ,你可以这样做内联。但是你有一个缺点,那就是你以后不能真正改变它。

MyPage.aspx

<%= AppNamespace.App.AppDoSomething() %> 
+0

谢谢!这是我正在寻找的。来自其他语言,ASP似乎......很奇怪。 –

+0

在学校我被教了PHP和Java服务器页面。我学会了ASP.NET的工作,我非常欣赏.NET框架的强大功能。当然,这比修改一个独立的.php文件要稍微多一些,但是一旦你开始使用它,你就会开始看到好处。 – mason

1

如果您使用的是ASP.NET MVC(它几乎可以让您将C#代码粘贴到视图中,而没有任何大问题),您可以引用您制作的dll并通过c#代码调用它。

你可以把它放在视图中,或者你可以从控制器的dll中读取数据并将结果粘贴到viewbag(然后你可以从视图中引用它)。

+0

好的,请记住,我是一个完整的ASP noob ...只需插入<%= AppNamespace.App.SomeFunction()%>对?我只是想从CS函数打印一个值到我的asp/html页面 - 我该如何引用.dll? –

+1

我真的不确定你会怎么做webforms。我跳过了webforms,赞成使用MVC框架(从关注点分离,可读性等角度来看,这是一个非常好的做法) –

+0

我希望能够“回显”一个值到一个空白页面......我真的必须经历创建一些完整应用程序的所有环节才能获得简单的回声消除?当我将C#文件编译为.exe时,它可以很好地工作(只需写入控制台)。我想这就是为什么我总是避免.net/asp - 我只想做一件简单的事情,而不必建立一个完整的应用程序来做到这一点。似乎在复杂的方式...在PHP它只会是<?回声“某事”; ?>。我也在Xamarin中构建我的.dll,我没有安装Visual Studio或任何Microsoft编译器。 –