问题就是标题本身。我是 MVC 的新手,现在我正在学习自学。请给我答案,这对于 MVC 的新手来说很清楚。谢谢。
1 回答
部分视图只不过是 Html 的“片段”,您可以将其保存在一个单独的文件中,以便在其他视图中重复使用。有点像 ASP.NET WebForms 中的 UserControls。
强类型视图意味着它有一个与之关联的 ViewModel,控制器正在传递给它,并且该 View 中的所有元素都可以使用这些 ViewModel 属性
你也可以有强类型的部分。这意味着 Html 需要特定数据,因此您将其键入到某个 ViewModel
这是一个强类型视图的示例
@model SomeViewModel
...// all the html comes after
非强类型视图没有@model SomeViewModel
行
这是一个控制器操作的示例,它在没有 ViewModel 的情况下呈现普通视图
public ActionResult Index() {
return View();
}
这是一个呈现强类型视图的视图
public ActionResult Index() {
var model = new SomeViewModel();
return View(model);
}
@model SomeViewModel
并且视图通过在文件顶部使用该 ViewModel 。
所以现在视图有一个 ViewModel 我可以显示绑定到 ViewModel 的元素,比如
@Html.TextBoxFor(m => m.FirstName)
@Html.CheckBoxFor(m => m.IsAwesome)
因此,输入这些字段的任何数据都绑定到 ViewModel。当用户单击提交按钮时,那些输入的值会被发送回服务器。
正如我之前所说,部分视图是可重用的 Html 片段。所以在同样的观点中,我可以添加我的部分。假设我有一个部分视图,其中包含我想在整个网站上重用的标准 Html,比如页脚
我可以创建一个 .cshtml 文件并将其放入其中
<div> footer text here</div>
然后将它包含在任何视图中,不管它是否是强类型的,它只是可重用的 Html
@model SomeViewModel
@Html.TextBoxFor(m => m.FirstName)
@Html.CheckBoxFor(m => m.IsAwesome)
{@Html.RenderPartial("MyFooter")}