2014-08-27 60 views
0

我完全不瞭解MVC。現在我試圖在文件夾Sample(它位於Views的文件夾下)中創建一個View。我右鍵單擊示例文件夾並選擇「添加視圖」,然後點擊視圖名稱測試。在創建視圖後,我輸入以下代碼:添加視圖並顯示它?

<!DOCTYPE html> 
<html> 
<head> 
    <title>Sample View</title> 
</head> 
<body> 
    <p> 
     Test 
    </p> 
</body> 
</html> 

構建。然後我嘗試在瀏覽器中導航地址http://localhost:24694/Sample/Test。但瀏覽器讀取「無法找到資源」。爲什麼?我還有Sample文件夾中的其他cshtml文件(這是其他人生成的),它們工作正常。例如,在Sample文件夾下有一個名爲「Message.cshtml」的文件,我可以輕鬆瀏覽地址http://localhost:24694/Sample/Message。有什麼我應該補充的嗎?

+0

你的工作在這裏倒退。從控制器開始,添加一個動作,然後爲動作添加一個視圖。 – asawyer 2014-08-27 15:07:15

+0

您需要在'SampleController'上添加一個名爲'Test'的方法,該方法返回視圖'return View();'。我將首先閱讀一些文檔,例如[官方文檔](http://www.asp.net/mvc/tutorials/mvc-5/introduction/getting-started) – 2014-08-27 15:07:55

+0

您需要在下面有一個名爲'SampleController'的控制器控制器文件夾,或配置現有的控制器路由到該視圖。 – PoweredByOrange 2014-08-27 15:08:19

回答

1

不能使用

http://localhost:24694/Sample/Test 

瀏覽,查看,因爲你只能通過控制器訪問視圖。所以請按照下列步驟操作

  1. 首先在控制器文件夾內創建一個新的控制器並命名爲'SamplController'。
  2. 默認情況下會有一個名爲Index()的操作方法。
  3. 在'SampleController'內創建一個名爲'Test'的新Action方法
  4. 現在右鍵單擊'Test'操作方法,然後單擊添加視圖。它會在名爲'Test.cshtml'的Views文件夾中添加一個新視圖。你可以使用它。如果你想把這個視圖放在其他文件夾中,那麼你必須修改'測試'操作方法的返回語句。例如,您在Views文件夾中創建了一個文件夾「MyViews」,並在其中移動了「Test.cshtml」。現在,在 '測試' 的操作方法的return語句會是這樣

返回查看( 「〜查看/樣品/ MyViews/Test.cshtml」);

代替

返回查看();

現在,當您使用

http://localhost:port/Sample/Test 

,將創建「樣本」控制器的一個新實例,將調用「測試」的操作方法。此方法將返回指定的視圖。我希望它會幫助:)

1

ASP.NET MVC基於routing而不是像asp.net webforms那樣的文件系統。繼內部之後,視圖應該位於ASP.NET MVC應用程序模板的Views文件夾中,如Controllers應保留在Controllers文件夾中。這不是必需的,但它是從asp.net mvc框架默認設置的。

在你的一個Controller(類)中,你可能有一些Actions(方法),它可以返回從ActionResult類型派生的視圖,圖像,文件等實現。這些操作可以使用控制器基類中的View方法返回視圖。默認情況下,如果你有一個像這樣的控制器,asp.net mvc將在'Views`文件夾內以及與Controller同名的文件夾中搜索一個視圖(.cshtml或.aspx文件),例如:

public class ProductController : Controller 
{ 
    public ActionResult Index() 
    { 
     return View(); 
    } 
} 

它將Views/Product/Index.cshtml取景並呈現給你。我建議你在http://asp.net/mvc

+0

'在路由中受苦? – asawyer 2014-08-27 15:11:27

+0

是的,不像asp.net webforms。 – 2014-08-27 15:17:51

2

3步驟過程

1讀取更多 - 定義路由

routes.MapRoute("Test", "test", 
       new { controller = "NameOfController", <- In your case TestController 
         action = "Index", <- Name of action in controller returning view 
         parameter = "parameterName - leave empty if no params needed" 
        }); 

2 - 創建控制器

所以如果按照上述方法並調用你的路由Test和View Test然後你需要創建一個名爲的控制器TestController。 MVC自動將這些母豬一起感謝您的路線配置您前面所做的(RouteConfig.cs)

3 - 查看

在你的情況,你只需要確保該視圖返回的東西。

那樣容易。祝你好運。

相關問題