Asp.net mvc 4 要从数据库查看的MVC4 ViewModel-示例

Asp.net mvc 4 要从数据库查看的MVC4 ViewModel-示例,asp.net-mvc-4,model-view,Asp.net Mvc 4,Model View,不断地为一个简单的问题绞尽脑汁。有人能给我写一个完整的代码吗 2款: public class State { public int StateID { get; set; } public string Name { get; set; } } public class City { public int CityID { get; set; } public stri

不断地为一个简单的问题绞尽脑汁。有人能给我写一个完整的代码吗

2款:

public class State
    {
        public int StateID { get; set; }

        public string Name { get; set; }
    }

    public class City
        {
            public int CityID { get; set; }

            public string Name { get; set; }

            public int StateID { get; set; }

            [ForeignKey("StateID")]
            public State State { get; set; }
            public IEnumerable<SelectListItem> StateList { get; set; }
        }
控制器

public ActionResult Index()
        {
            var model = new List<CityIndexViewModel>();
            var dbCity = db.City.Include("State");
            foreach (City c in dbCity)
            {
                var cityIndex = new CityIndexViewModel()
                {
                    CityID = c.CityID,
                    CityName = c.Name,
                    StateId = c.State.StateID,
                    StateName = c.State.Name
                };
                model.Add(cityIndex);
            }

            return View(model);
        }
public ActionResult Index()
{
var模型=新列表();
var dbCity=db.City.Include(“州”);
foreach(dbCity中的c市)
{
var cityIndex=new CityIndexViewModel()
{
CityID=c.CityID,
CityName=c.名称,
StateId=c.State.StateId,
StateName=c.State.Name
};
模型。添加(城市索引);
}
返回视图(模型);
}
查看

@model IEnumerable<app.ViewModel.CityIndexViewModel>

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>

<p>
    @Html.ActionLink("Create New", "Create")
</p>
<table>
    <tr>
        <th>
            Citys
            @*@Html.DisplayNameFor(model => model.Citys)*@
        </th>
        <th>
            States
            @*@Html.DisplayNameFor(model => model.States)*@
        </th>
        <th></th>
    </tr>

@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.CityName)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.StateName)
        </td>
        <td>
           @* @Html.ActionLink("Edit", "Edit", new { id=item.CityID }) |
            @Html.ActionLink("Details", "Details", new { id=item.CityID }) |
            @Html.ActionLink("Delete", "Delete", new { id=item.CityID })*@
        </td>
    </tr>
}

</table>
@model IEnumerable
@{
ViewBag.Title=“Index”;
}
指数

@ActionLink(“新建”、“创建”)

城市 @*@DisplayNameFor(model=>model.Citys)*@ 州 @*@DisplayNameFor(model=>model.States)*@ @foreach(模型中的var项目){ @DisplayFor(modelItem=>item.CityName) @DisplayFor(modelItem=>item.StateName) @*@Html.ActionLink(“编辑”,“编辑”,新的{id=item.CityID})| @ActionLink(“详细信息”,“详细信息”,新的{id=item.CityID})| @ActionLink(“删除”,“删除”,新的{id=item.CityID})*@ }
您应该告诉未来的访问者您是如何解决问题的
@model IEnumerable<app.ViewModel.CityIndexViewModel>

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>

<p>
    @Html.ActionLink("Create New", "Create")
</p>
<table>
    <tr>
        <th>
            Citys
            @*@Html.DisplayNameFor(model => model.Citys)*@
        </th>
        <th>
            States
            @*@Html.DisplayNameFor(model => model.States)*@
        </th>
        <th></th>
    </tr>

@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.CityName)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.StateName)
        </td>
        <td>
           @* @Html.ActionLink("Edit", "Edit", new { id=item.CityID }) |
            @Html.ActionLink("Details", "Details", new { id=item.CityID }) |
            @Html.ActionLink("Delete", "Delete", new { id=item.CityID })*@
        </td>
    </tr>
}

</table>