3

问题就是标题本身。我是 MVC 的新手,现在我正在学习自学。请给我答案,这对于 MVC 的新手来说很清楚。谢谢。

4

1 回答 1

9

部分视图只不过是 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")}
于 2012-06-08T12:22:09.587 回答