Osm*_*oni 7 c# asp.net asp.net-mvc razor asp.net-mvc-4
我是ASP.NET MVC的新手.我无法清楚地理解它们之间的区别
强类型视图与普通视图与部分视图与动态类型视图相比
在Asp.NET MVC中.有人形容我这个词.
提前致谢!!!
强类型视图
绑定到视图模型的视图.例如,如果您有以下视图模型:
public class MyViewModel
{
public string SomeProperty { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
由控制器操作传递给视图:
public ActionResult Index()
{
var model = new MyViewModel();
model.SomeProperty = "some property value";
return View(model);
}
Run Code Online (Sandbox Code Playgroud)
强类型视图将@model在顶部指向此视图模型的指令:
@model MyViewModel
...
<div>@Model.SomeProperty</div>
Run Code Online (Sandbox Code Playgroud)
局部视图
视图和部分视图之间的区别在于,部分视图仅包含一些可在普通视图的多个部分中重用的小HTML片段.例如,您可以定义以下部分视图:
@model AddressViewModel
<div>Street: @Model.Street</div>
<div>Country: @Model.Country</div>
Run Code Online (Sandbox Code Playgroud)
然后在主视图中的多个位置渲染此局部视图,以避免反复重复相同的代码:
@model MainViewModel
...
<h3>Personal address</h3>
<div>@Html.Partial("_Address.cshtml", Model.PersonalAddress)</div>
...
<h3>Business address</h3>
<div>@Html.Partial("_Address.cshtml", Model.BusinessAddress)</div>
Run Code Online (Sandbox Code Playgroud)
动态类型视图
没有模型的视图或使用弱类型结构的视图ViewBag.例如,您可以使用控制器操作在以下位置设置一些属性ViewBag:
public ActionResult Index()
{
ViewBag["SomeProperty"] = "some property value";
return View();
}
Run Code Online (Sandbox Code Playgroud)
以及您可以使用ViewBag中的相同键访问此属性的相应视图:
<div>@ViewBag["SomeProperty"]</div>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3759 次 |
| 最近记录: |