2014-08-27 70 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 - 查看

在你的情况,你只需要确保该视图返回的东西。

那样容易。祝你好运。

相关问题