【发布时间】:2017-02-24 06:21:14
【问题描述】:
我一直在通过谷歌可以提供给我的每一页寻找这个问题的解决方案,但我找不到可以解决它的确切页面。
我认为解决方案会很简单,但我不是 C# 和 ASP.NET MVC 专家,但从事 Web 开发有一段时间了。
情况:我有一个数据库。
- 表名:
MyData。 - 列名:ID、名称、字段和定义,我在每列下都有一些值。
我使用 ADO.Net 实体数据模型连接我现有的数据库,这些模型位于 .edmx / .tt 文件夹下。
public partial class MyData
{
public MyData(){ }
public int ID { get; set; }
public string Name { get; set; }
public string Field { get; set; }
public string Definition { get; set; }
}
然后我添加一个带有视图的 MVC5 控制器,使用指向我刚刚从数据库生成的模型的 EF。
namespace Mytest1.Controllers
{
public class MyDataController : Controller
{
private MyDatadb db = new MyDataEntities();
// GET: MyData
public ActionResult Index()
{
return View(db.MyData.ToList());
}
...
然后我右键创建Index的视图,Edit, Create....下面是Index:
@model IEnumerable<Mytest1.MyData>
@{
ViewBag.Title = "MyData";
}
<h2>MyData</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model.Name)
</th>
<th>
@Html.DisplayNameFor(model => model.Field)
</th>
<th>
@Html.DisplayNameFor(model => model.Definition)
</th>
</tr>
@foreach (var item in Model) {...
现在我可以在每列下显示值,并且网页通过处理索引视图为我提供表格。
所以问题是,我不想展示这些价值观。我希望网页显示该数据库的上层信息。所以我想要一个表,第一行是MyData,下面的其余行是ID、名称、字段和定义。就这么简单。但我不知道该怎么做。
我正在考虑的是在当前模型中添加这个
public class showColumn : MyData{
// 1. retrieve how many columns are in MyData
// 2. Return the values of those columns that have counted in step 1
}
然后我在 Index.cshtml 中创建一个新表说:
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model.showColumn)
</th>
</tr>
这种想法是否是实现此解决方案的一种可能方式?或者如果有人能给我一个更好的方法来解决它,我将非常感激!
【问题讨论】:
-
能否请您在绘画中模仿您想要的内容并将其添加到问题中。我发现很难弄清楚你想做什么。完成后请发表评论,以便我收到通知。另外(我会为你做,但我是编辑的 90 代表!!!)我建议在这个问题中添加 asp.net-mvc 标记,因为大多数窥视者在回答问题时都会寻找它。
-
所以基本上上面的那些代码块只是在描述我的问题。如果您认为我编写的伪代码(public class showColumn : MyData{ // 1. 检索 MyData 中有多少列 // 2. 返回在步骤 1 中计算过的那些列的值 })是解决此问题的一种可能方法问题,那么我的问题是如何将伪代码变为真实代码。
标签: c# sql-server-2008 asp.net-mvc-5 html-table