首页 > 解决方案 > 在 ASP.NET MVC 中,控制器如何知道要调用哪个视图?

问题描述

这听起来像是一个愚蠢的问题,我是一个相当有经验的程序员,但我对 .NET 和 MVC 是全新的。

在我上的一个类中,我们有一个控制器类 (Homecontroller.cs) 我知道在 ActionResult Index() 方法中调用 Return View() 将导致 .NET 使用文件 Index.cshtml 查找“主页”视图. 然而,在这个例子中,我们返回了 View(cars),其中 car 是 Car 类型的一个实例。因此,即使没有“汽车”视图,代码也会返回 Views/Home/index.html。但该类是 Car 类型的模型。因此,如果您在“返回视图”中返回了一种对象类型,ASP.NET 是否会搜索 .chstml 文件以查找该模型类型?或者它仍然只是在寻找 Home/Index.html 因为返回 View 是从 index 方法调用的。简而言之,在下面的代码中,ASP.NET 如何知道要转到 Views/Home/Index.cshtml?我将在下面粘贴相关代码:

控制器/HomeController.cs:

public class HomeController : Controller
{
    // GET: Home
    public ActionResult Index()
    {
        var cars = HelloMVC.Models.HelloModel.GetCars();

        return View(cars);
    }
}

视图/主页/Index.cshtml:

@model List<HelloMVC.Models.HelloModel.Car>
@{
    ViewBag.Title = "Index";
}

@foreach (var car in Model)
{
    <p>@car.ID - @car.Make - @car.Model</p>
}

标签: asp.netasp.net-mvcmodel-view-controllerviewcontroller

解决方案


搜索地点:

~/Views/{ControllerName}/{ActionName}.cshtml
~/Views/Shared/{ActionName}.cshtml

推荐阅读