问题是标题本身。我是MVC的新手,现在我正在学习自学。请给我答案,这对于MVC更新鲜是明确的。感谢。
答案 0 :(得分:9)
部分视图只不过是Html的“片段”,您可以将其保存在单独的文件中,您可以在其他视图中重复使用。类似于ASP.NET WebForms中的UserControl。
强类型视图意味着它有一个与之关联的ViewModel控制器传递给它,并且该视图中的所有元素都可以使用那些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>
然后将它包含在任何View中,无论是否强类型都无关紧要,它只是可重复使用的Html
@model SomeViewModel
@Html.TextBoxFor(m => m.FirstName)
@Html.CheckBoxFor(m => m.IsAwesome)
{@Html.RenderPartial("MyFooter")}