C# Visual Studio 2013添加视图
我创建类Poi和类地址C# Visual Studio 2013添加视图,c#,asp.net-mvc,visual-studio-2013,C#,Asp.net Mvc,Visual Studio 2013,我创建类Poi和类地址 public class Poi { public string ID { get; set; } public string Title { get; set; } public DateTime Created { get; set; } public DateTime Modified { get; set; } public Address Address { get; set; } // ... } pu
public class Poi
{
public string ID { get; set; }
public string Title { get; set; }
public DateTime Created { get; set; }
public DateTime Modified { get; set; }
public Address Address { get; set; }
// ...
}
public class Address
{
public string Street { get; set; }
public string Zip { get; set; }
public string City { get; set; }
public string Country { get; set; }
}
如何生成包含地址所有字段的视图Poi/Details.cshtml?您必须将
地址作为模型向下传递给视图
在控制器中:
public ActionResult Details()
{
var model = new Address();
model.Street = "Test address";
return View(model);
}
然后在您的视图中,添加以下内容:
@model Address
这将允许视图知道它正在处理强类型的地址
模型
然后可以使用@Html.DisplayFor
列出视图中的所有属性,例如:
@Html.DisplayFor(m => m.Street)
@Html.DisplayFor(m => m.Zip)
@Html.DisplayFor(m => m.City)
@Html.DisplayFor(m => m.Country)
但是,最好创建一个ViewModel
,而不是直接使用地址
POCO。ViewModel可以从不同的层(例如数据库或Web服务)获取此信息,然后这些层可以独立地调用该层,而不是在控制器中,这允许更好地分离关注点 您必须将地址作为模型向下传递给视图
在控制器中:
public ActionResult Details()
{
var model = new Address();
model.Street = "Test address";
return View(model);
}
然后在您的视图中,添加以下内容:
@model Address
这将允许视图知道它正在处理强类型的地址
模型
然后可以使用@Html.DisplayFor
列出视图中的所有属性,例如:
@Html.DisplayFor(m => m.Street)
@Html.DisplayFor(m => m.Zip)
@Html.DisplayFor(m => m.City)
@Html.DisplayFor(m => m.Country)
但是,最好创建一个ViewModel
,而不是直接使用地址
POCO。ViewModel可以从不同的层(例如数据库或Web服务)获取此信息,然后这些层可以独立地调用该层,而不是在控制器中,这允许更好地分离关注点 我不想为地址生成任何视图,只想为包含所有地址字段的POI生成一个视图。如果我在VS2013中为POI模型生成视图,它会保留地址。@mlauth-然后使用POI模型并访问其中的地址属性@HtmlDisplayFor(m=>m.Address.Street)
-如果POI有多个地址,你需要一个集合并将它们存储在一个IEnumerable
中,然后在视图中对它们进行迭代。有没有办法自动执行此操作?@mlauth-看看MVC脚手架。我尝试了MVC脚手架。我在控制器中使用了“添加视图”选项。但是有没有办法自动生成一个完整的视图,包括所有的poi和地址字段,而不平铺我的poi对象,如果没有,我就使用AutoMapper。我不想为地址生成任何视图,只想为包含所有地址字段的poi生成一个视图。如果我在VS2013中为POI模型生成视图,它会保留地址。@mlauth-然后使用POI模型并访问其中的地址属性@HtmlDisplayFor(m=>m.Address.Street)
-如果POI有多个地址,你需要一个集合并将它们存储在一个IEnumerable
中,然后在视图中对它们进行迭代。有没有办法自动执行此操作?@mlauth-看看MVC脚手架。我尝试了MVC脚手架。我在控制器中使用了“添加视图”选项。但是,有没有办法自动生成一个完整的视图,包括poi和地址的所有字段,而无需平展我的poi对象,如果没有,我就使用AutoMapper。