如何在ASP网页中使用C#类的返回值

时间:2014-03-18 18:51:37

标签: c# asp.net .net windows dll

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

我有一个.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 个答案:

答案 0 :(得分:1)

如果您正在使用ASP.NET MVC(几乎可以让您将C#代码放入视图中而没有任何大问题),您可以引用您已创建的DLL并通过它调用它c#代码。

您可以将其放在视图中,也可以从控制器中的dll读取并将结果粘贴到viewbag中(然后可以从视图中引用)。

答案 1 :(得分:1)

Web Forms的方式就是这样......

<强> 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() %>