我在Asp.NET MVC中有一个带有实体数据模型的应用程序。现在我有一个state_master表的模型,其中我只有一个属性'State_Name',在数据库表中我有2个字段'State_ID',它是自动递增的'State_Name',我将为其插入数据。 现在因为我在Model I中只有一个属性,所以无法使用此模型同时获取字段'State_ID'和'State_Name'。这是我面临的问题。
州模型档案:
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;
namespace ViewData.Models
{
public class state_model
{
[Key]
public string state_name { get; set; }
}
}
查看文件:
@using ViewData.Models
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>state_view</title>
</head>
<body>
<div>
<ul>
@foreach (var state in ViewData["states"] as IList<state_model>)
{
<li>
@state.state_name
</li>
}
</ul>
</div>
</body>
</html>
控制器文件:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using ViewData.DataAccessLayer;
using ViewData.Models;
namespace ViewData.Controllers
{
public class StateController : Controller
{
// GET: State
public ActionResult Index()
{
DataLayer dl = new DataLayer();
IList<state_model> data = (from o in dl.states select o).ToList();
ViewData["states"] = data;
return View("state_view");
}
}
}
答案 0 :(得分:0)
您需要为状态创建视图模型以获取并绑定数据库中的所有字段。例如,
public class state_ViewModel
{
[Key]
public int state_Id { get; set; } //check with your data type
public string state_name { get; set; }
}
所以在你的控制器方法中,你可以使用这个来获取和绑定。对于插入记录,您可以使用 state_model
在你的行动方法中,
public ActionResult Index()
{
DataLayer dl = new DataLayer();
IList<state_ViewModel> data = (from o in dl.states select o).ToList();
ViewData["states"] = data;
return View("state_view");
}
请参阅,View Model只是在您的视图中呈现数据。 要了解有关视图模型的更多信息,请单击here