gpt4 book ai didi

c# - 即使没有指定模型类型,MVC View 如何工作?

转载 作者:行者123 更新时间:2023-12-01 21:13:11 26 4
gpt4 key购买 nike

刚刚创建了一个简单的 MVC 5 应用程序。

创建了一个 Controller 并像这样调用我的 View :

var testClass = new TestClass();
testClass.Name = "Krish";
return View(testClass);

创建了一个 View ,如下所示:

@{
ViewBag.Title = "Index";
}

<h2>Index</h2>

<h3>@Model.Name</h3>

但是即使不指定模型类型,这也能正常工作。


Should not we specify something like:
`@Model TestClass`

有什么想法吗?

编辑:
This MSDN 页面说代表一个用于在 Controller 和 View 之间传递强类型数据的容器。我们没有强类型化上面的模型。那么 View 怎么找到模型类型呢?

最佳答案

cshtml View (或者 vbhtml,如果你愿意的话)实际上被转换为继承自 WebViewPage<TModel> 的 .NET 类。 .

当你在 View 中声明时

@model SomeType

您告诉 MVC 框架声明您的 View ,如下所示:

public class _Page_Path_To_MyView_cshtml : WebViewPage<SomeType> { ... }

当您省略 @model 时声明,框架声明你的 View 如下:

public class _Page_Path_To_MyView_cshtml : WebViewPage<dynamic> { ... }

实际上所有没有 @model 的 View 声明可以被认为具有

@model dynamic

在顶部,这就是为什么你的 @Model.Name仍然有效,但您会注意到它没有智能感知(除非您多次使用它)。

如果你这样做了@Model.SomePropertyThatDoesntExist你会得到一个异常(exception)。

关于c# - 即使没有指定模型类型,MVC View 如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25445441/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com