【发布时间】:2014-11-07 10:32:15
【问题描述】:
我可以从 asp.net 网络表单调用控制台应用程序,但是如果我像下面这样一个一个地输入,一旦我从用户输入中得到第一个参数,那么他们有另一个输入,请输入另一个数字,然后用户需要输入另一个控制台应用程序中的参数。我有 2 个论点,但两者都会一一讨论。如果第一次使用单个参数,那么我可以按如下方式通过,但使用 2 我不能。这怎么可能 如果有人帮忙,那就太好了。我想同时传递这两个参数。
Asp.net 网络表单
Process p1 = new Process();
p1.StartInfo.FileName = "ConsoleEx.exe"; // actual file name
p1.StartInfo.Arguments = "1 ";
p1.StartInfo.UseShellExecute = false;
p1.StartInfo.RedirectStandardOutput = true;
p1.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
p1.Start();
p1.WaitForExit();
if (p1.HasExited)
{
string output = p1.StandardOutput.ReadToEnd();
lblConsoleOutput.Text = output;
p1.Dispose();
}
控制台应用
static void Main(string[] args)
{
int num1, num2;
int add, sub, mul;
float div;
Console.Write("Enter 1st number\t");
num1 = Convert.ToInt32(Console.ReadLine());
Console.Write("\nEnter 2nd number\t");
num2 = Convert.ToInt32(Console.ReadLine());}
这是图片
【问题讨论】:
-
您控制控制台应用程序吗?它目前根本没有使用它的命令行参数,而是从控制台读取数据。虽然您可以在您的 ASP.NET 应用程序中使用它,但如果控制台应用程序只使用命令行参数会更简洁。或者,您是否可以直接在 ASP.NET 应用程序中调用
Main方法,而不启动另一个进程? -
鉴于控制台在第一个参数之后没有出现返回任何信息,为什么不直接提示用户从 Web 界面 UI 输入两个参数,然后将两者都传递给控制台应用程序?
-
嗨 Jon & Jeames 我有一个控制台应用程序,它会接受一一输入并取出您可以在上图中看到的输出。我想从 asp.net 网络表单中调用它并在网络表单上显示输出。
-
@TusharMaru 如果控制台应用程序的目的纯粹是在幕后处理数字(而你已经写好了)那么我建议你让它支持一次传递 all 数字。这将允许您通过 web 界面提示用户输入数字,但在后台一次性将所有累积的数字传递给控制台应用程序。
-
嗨詹姆斯,这是应用程序是旧的 dos 应用程序的问题,我们没有源代码。这只是一个示例应用程序,实际应用程序在幕后具有不同的逻辑,并且是这样工作的。所以我找到了解决方案,我们可以将参数从 Web UI 传递到控制台应用程序,在该控制台应用程序中,有很多参数一一不是全部在一起。
标签: c# asp.net console-application