【问题标题】:C# input on Layout page using Web API使用 Web API 在布局页面上输入 C#
【发布时间】:2015-05-06 19:33:25
【问题描述】:

我在控制台中编写了以下代码。我想在我的 Layout.cshtml 页面上显示代码返回的字符串,就像页面上的任何其他内容一样。我如何使用 Web API 来做到这一点?

 namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string serverName = "localhost";

            var nsm = new ServerManager();

            using (Microsoft.Web.Administration.ServerManager sm = Microsoft.Web.Administration.ServerManager.OpenRemote(serverName))
            {

               //site mySite = sm.Sites.Add("Racing Cars Site", d:\\inetpub\\wwwroot\racing",  8080);
                int counter = 1; 
                foreach (var site in sm.Sites)
                {
                    //var p = site.Bindings.GetCollection().GetAttribute("physicalPath");
                    var p = site.Applications[0].VirtualDirectories[0].PhysicalPath;
                      int b=0;

                    foreach (Microsoft.Web.Administration.Binding binding in site.Bindings)
                         b= binding.EndPoint.Port;

                    Console.Write(String.Format(CultureInfo.InvariantCulture
                        , "Site number {0} : , {1} PhysicalPath : {2}  , Port:{3} {4} "
                        , counter.ToString(), site.Name ,p , b, Environment.NewLine));
                    counter++; 
                }
                Console.ReadKey();

            }
        }

    }
}

【问题讨论】:

  • 这是一个控制台应用程序吗?还是 asp.net 应用程序?
  • Web API 没有布局页面 - 它没有 UI 并且不生成 HTML。 MVC 可以。你在问什么?您是否有特定的问题,或者您是在询问一般如何在 ASP.NET MVC 中创建页面?
  • 这是控制台代码,我想在 asp.net mvc 应用程序中的任何地方重写代码并在我的网页上获得输出,我的解释够清楚吗?
  • 你没有提到控制台应用程序的任何标签。
  • 一般来说,我希望 C# 输出显示在我的网页上,您认为我应该通过 mvc 助手来完成还是可以使用 Web API?

标签: c# asp.net-mvc console-application asp.net-web-api


【解决方案1】:

您的需求与 Web API 无关,忘记这一点。一个 ASP.NET MVC 应用程序是要走的路。 正如您所说,它可以使用助手来完成,但它存在更简单的方法来做到这一点。 (使用模型或 Viewbag)。您还需要学习如何使用视图中使用的渲染引擎的标记,例如 Razor。我建议你阅读一些教程,从here 开始,here

【讨论】:

    【解决方案2】:

    如果您想在MVC 中使用这些代码,您需要创建MVC 应用程序。在这种情况下,没有其他方法可以做到这一点。

    尝试在MVC 中重写它。顺便说一句,如果你想在console application 中显示输出,你必须使用Debug

    这是一个例子:

    System.Diagnostics.Debug.WriteLine("The String");
    

    所以这意味着debugMVC 中的console 代码。

    更新:如果您想在网页中显示代码的结果,您必须在 MVC 应用程序中重写您的代码。

    你还问过要不要使用helpers,所以我应该说你绝对可以使用MVC helpers。

    希望对您有所帮助。

    【讨论】:

    • Debug 写入任何已配置的调试跟踪侦听器,而不是控制台。即使您的意思是在 MVC 中 OP 应该使用 Debug,这也无济于事 - 除非您附加了跟踪侦听器,否则消息将会丢失。即使这样,监听器也会写入本地文件,而不是 MVC 页面
    • 如何回答 OP 的(非常模糊的)问题?顺便说一句,编辑一直说您需要 Debug 才能写入控制台
    • 好吧,我知道 Debug..no 我不想使用它。当然我是在 MVC 应用程序中做的。简而言之,我只需要在我的网页上输出我的 C# 输出。就这样。忘记控制台......我编写了该代码以获得快速输出。现在,如果最好使用 mvc 助手,你能给我举个例子吗?如果可以通过 Web API 完成,您能给我一个提示吗?
    • @ShadiMahmoodian 你要一个教程。 SO 是一个问答网站,教程问题明确超出范围。写一篇关于 MVC 的教程需要好几页。 ASP.NET MVC's 网站包含很多教程,你试过了吗?
    • @ShadiMahmoodian 当然你可以使用 mvc 助手。
    猜你喜欢
    • 1970-01-01
    • 2021-04-11
    • 2012-05-04
    • 2010-10-21
    • 1970-01-01
    • 2014-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多