我正在使用asp.net
mvc。
在视图中,
@using System.Data
<table>
<thead>
<tr>
@foreach (DataColumn col in Model.Columns)
{
<th>@col.ColumnName</th>
}
</tr>
</thead>
<tbody>
@foreach (DataRow row in Model.Rows)
{
<tr>
@foreach (DataColumn col in Model.Columns)
{
<td>@row[col.ColumnName]</td>
}
</tr>
}
</tbody>
喜欢使用Model.Columns
,Model.Rows
我想使用myModel
所以在顶部写代码
@model myprojectname.Models.ItemViewModel
然后我得到一个错误
Model.Columns指向ItemViewModel(无意图)
但是我想使用ItemViewModel
我的问题是如何使用myViewModel
不影响
@foreach (DataColumn col in Model.Columns)
这部分
如果没有,那么我将硬编码(添加部分)或(此foreach部分)
添加
ItemViewModels.cs
public class ItemViewModel
{
public string item_id { get; set; }
//public string item_type { get; set; }
public string item_name { get; set; }
public string user_name { get; set; }
public string location { get; set; }
public string model_name { get; set; }
public string manufacturer { get; set; }
public string serial_number { get; set; }
public string serial_number2 { get; set; }
public string specifications { get; set; }
public DateTime date_of_manufacture { get; set; }
public DateTime date_of_purchase { get; set; }
public string note { get; set; }
public int state { get; set; }
public ItemTypes item_type { get; set; }
public ItemState item_state { get; set; }
public enum ItemTypes
{
PC_데스크탑 = 'D',
네트워크장비 = 'Z',
노트북 = 'N',
맥북 = 'N',
모니터 = 'M',
모바일 = 'P',
백업장비 = 'S',
타블렛 = 'W',
태블릿 = 'T',
키보드 = 'K',
마우스 = 'U'
}
public enum ItemState
{
사용 = 1,
미사용 = 2,
AS대기 = 3,
AS중 = 4,
폐기예정 = 5,
폐기완료 = 6
}
}
和Controller.cs
public ActionResult Index()
{
......
using (DataSet dsResult = callWcfService.fnGetQuery(sXmlParam))
{
return View(dsResult.Tables[0]);
}
}
我想在视图上做这样的事
@Html.EnumDropDownListFor(model => model.item_type, new { @class = "form-control" })
所以我需要引用modelView
和
@foreach (DataColumn col in Model.Columns)
模型上的鼠标悬停
vs显示信息 [动态WebvViewPage.Model {get;} 获取连接到ViewDataDictionary对象的Model属性]
但添加后 @model myprojectname.Models.ItemViewModel
它会更改[ItemViewModel在行,列上没有定义]
答案 0 :(得分:0)
如果您想同时使用DataTable和ViewModel,则可以创建一个新的ViewModel,其中包含DataTable和使用的ViewModel的属性。为了使您的代码更整洁,我不建议您这样做。对于常见的情况,一个ViewModel足以提供一个View,您不必将模型组成一个新模型。因此,如果所有数据仅用于显示目的,也许您可以考虑向模型添加更多属性,然后将DataTable的所有数据分配给这些属性。