2016-03-11 119 views
0

我正在學習ASP.NET Core 1.0。我遵循this link提供的說明。我能夠通過lite-server成功加載靜態頁面。但是,我無法弄清楚如何呈現服務器端頁面。ASP.NET - 運行.NET應用程序

例如,上面的鏈接解釋瞭如何獲取index.html出現。但是,當我訪問http://localhost:[port]/時,我希望看到Views/Home/Index.cshtml的內容。

如何執行服務器端頁面?

更新時間: 這裏是我的project.json文件:

{ 
    "version": "1.0.0-*", 
    "compilationOptions": { 
    "emitEntryPoint": true 
    }, 
    "tooling": { 
    "defaultNamespace": "MyApp" 
    }, 

    "dependencies": { 
    "Microsoft.AspNet.Diagnostics": "1.0.0-rc1-final", 
    "Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final", 
    "Microsoft.AspNet.Mvc": "6.0.0-rc1-final", 
    "Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-rc1-final", 
    "Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final", 
    "Microsoft.AspNet.StaticFiles": "1.0.0-rc1-final", 
    "Microsoft.AspNet.Tooling.Razor": "1.0.0-rc1-final", 
    "Microsoft.Extensions.Configuration.FileProviderExtensions" : "1.0.0-rc1-final", 
    "Microsoft.Extensions.Configuration.Json": "1.0.0-rc1-final", 
    "Microsoft.Extensions.Logging": "1.0.0-rc1-final", 
    "Microsoft.Extensions.Logging.Console": "1.0.0-rc1-final", 
    "Microsoft.Extensions.Logging.Debug": "1.0.0-rc1-final" 
    }, 

    "commands": { 
    "web": "Microsoft.AspNet.Server.Kestrel" 
    }, 

    "frameworks": { 
    "dnx451": {}, 
    "dnxcore50": {} 
    }, 

    "exclude": [ 
    "wwwroot", 
    "node_modules", 
    "bower_components" 
    ], 
    "publishExclude": [ 
    "node_modules", 
    "bower_components", 
    "**.xproj", 
    "**.user", 
    "**.vspscc" 
    ], 
    "scripts": { 
    "prepublish": [ 
     "npm install", 
     "bower install", 
     "gulp clean", 
     "gulp min" 
    ] 
    } 
} 

startup.cs

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Threading.Tasks; 
using Microsoft.AspNet.Builder; 
using Microsoft.AspNet.Hosting; 
using Microsoft.Extensions.Configuration; 
using Microsoft.Extensions.DependencyInjection; 
using Microsoft.Extensions.Logging; 

namespace MyApp 
{ 
    public class Startup 
    { 
     public Startup(IHostingEnvironment env) 
     { 
      // Set up configuration sources. 
      var builder = new ConfigurationBuilder() 
       .AddJsonFile("appsettings.json") 
       .AddEnvironmentVariables(); 
      Configuration = builder.Build(); 
     } 

     public IConfigurationRoot Configuration { get; set; } 

     // This method gets called by the runtime. Use this method to add services to the container. 
     public void ConfigureServices(IServiceCollection services) 
     { 
      // Add framework services. 
      services.AddMvc(); 
     } 

     // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. 
     public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) 
     { 
      loggerFactory.AddConsole(Configuration.GetSection("Logging")); 
      loggerFactory.AddDebug(); 

      if (env.IsDevelopment()) 
      { 
       app.UseDeveloperExceptionPage(); 
      } 
      else 
      { 
       app.UseExceptionHandler("/Home/Error"); 
      } 

      app.UseIISPlatformHandler(); 

      app.UseStaticFiles(); 

      app.UseMvc(routes => 
      { 
       routes.MapRoute(
        name: "default", 
        template: "{controller=Home}/{action=Index}/{id?}"); 
      }); 
     } 

     // Entry point for the application. 
     public static void Main(string[] args) => Microsoft.AspNet.Hosting.WebApplication.Run<Startup>(args); 
    } 
} 

感謝

+0

請提供您的'project.json'文件。 –

+0

不,您不應該在瀏覽器中看到您的Razor(.cshtml)頁面的內容。你應該看到渲染Razor頁面的結果。 – mason

+0

@aguafrommars我已經按要求提供了我的project.json文件。謝謝你看這個。 –

回答

-1

所有你在瀏覽文件夾中創建視圖頁面並且擴展名爲.cshtml通過控制器加載 - 通常按照慣例與其中的方法名稱相同控制器。因此,要激發這些View頁面中的一個,必須執行相應的控制器操作(方法)。

爲了讓控制器的方法觸發,需要配置適當的路由。我沒有在教程中看到您引用了MVC「已啓用」的任何指示。儘管在上面的project.json文件中有對MVC的引用,但必須在startup.cs文件中配置MVC。並且需要配置路由。

你是Yeoman教程向你展示瞭如何創建一個'空'項目 - 而不是MVC項目。

我希望這有助於:)

+0

如果您不確定他們是否設置了MVC,那麼您應該要求澄清問題,而不是試圖回答一個不完整的問題。 – mason

+0

是的,梅森,我想到了這一點,但教程很清楚,一個空的項目已經創建。 –

+0

教程中所說的內容並不重要,這是問題的外部。我們沒有調試教程,我們發現Zach做錯了什麼。如果我們需要了解更多細節,我們應該像他一樣徵求他們的意見。並且在我確實詢問之後,事實證明他*設置了MVC,這意味着您的答案不相關。重要的是要記住等到你有足夠的信息在回答之前充分回答*。 – mason