【发布时间】:2020-02-21 05:07:41
【问题描述】:
这听起来可能是个愚蠢的问题,我是一个相当有经验的程序员,但我是 .NET 和 MVC 的新手。
在我正在学习的一个类中,我们有一个控制器类 (Homecontroller.cs) 我知道在 ActionResult Index() 方法中调用 Return View() 将导致 .NET 使用文件查找“主页”视图索引.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);
}
}
Views/Home/Index.cshtml:
@model List<HelloMVC.Models.HelloModel.Car>
@{
ViewBag.Title = "Index";
}
@foreach (var car in Model)
{
<p>@car.ID - @car.Make - @car.Model</p>
}
【问题讨论】:
-
return View()查找与ActionResult同名的视图以指定不同的.cshtml,使用return View("ViewName", model)参见docs.microsoft.com/en-us/aspnet/mvc/overview/older-versions-1/… -
命名约定
-
你可以指定一个特定的视图
标签: asp.net asp.net-mvc model-view-controller view controller