我正在尝试在表格中显示提供商列表。获取提供商列表的代码如下
public ActionResult Index()
{
DAL2 dal = new DAL2();
Provider patientlist = new Provider();
List<Provider> providers = dal.GetListofProviders.ToList();
return View(providers);
}
上面的代码工作正常。我按预期获得了提供者列表。
视图中的HTML代码如下
@model IEnumerable<ProviderDemo.Models.Provider>
@{
ViewBag.Title = "ProviderList";
}
<head>
<title>LIST OF PROVIDERS</title>
</head>
<body>
<table class="table table-striped table-bordered table-hover">
<tr>
<th>Provider Type</th>
<th>First Name</th>
<th>Last Name</th>
<th>Certification</th>
<th>Specialization</th>
<th>SSN</th>
<th>Facility Name</th>
<th>Contact No</th>
<th>Contact Email</th>
<th></th>
</tr>
<tbody data-bind="foreach: viewmodel">
<tr>
<td class="col-lg-2" data-bind="text: ProviderType"></td>
<td class="col-lg-1" data-bind="text: FirstName"></td>
<td class="col-lg-1" data-bind="text: LastName"></td>
<td class="col-lg-1" data-bind="text: Certification"></>
<td class="col-lg-1" data-bind="text: Specialization"></td>
<td class="col-lg-1" data-bind="text: SSN"></td>
<td class="col-lg-4" data-bind="text: FacilityName"></td>
<td class="col-lg-4" data-bind="text: ContactNumber"></td>
<td class="col-lg-1" data-bind="text: ContactEmail"></td>
<td><a class="btn btn-default" id="del" onclick = "return confirm('Are you sure, you want to delete');" data-bind="attr: { href: '/ProviderRegister/Delete/' + ProviderID }"> Delete </a>
</td>
</tr>
</tbody>
</table>
</body>
我的提供者类如下:
public class Provider
{
public int ProviderID { get; set; }
public string ProviderType { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Certification { get; set; }
public string Specialization { get; set; }
public string SSN { get; set; }
public string ContactNumber { get; set; }
public string ContactEmail { get; set; }
public string FacilityName { get; set; }
}
提供商视图模型
var Provider =
{
ProviderID:ko.observable(""),
ProviderType: ko.observable(""),
FirstName: ko.observable(""),
LastName: ko.observable(""),
Certification: ko.observable(""),
Specialization: ko.observable(""),
SSN: ko.observable(""),
ContactNumber: ko.observable(""),
ContactEmail: ko.observable(""),
FacilityName: ko.observable(""),
}
ko.applyBindings(Provider);
列表没有显示在表格中。模型的html顶部似乎有一个错误。我不明白为什么。我在这里做错了什么?请指导我正确的方向。
非常感谢所有帮助人员,但我之前犯了一个错误。在Index操作中,我看到提供者列表但我在视图中没有得到任何数据。所以,我在控制器中有数据但是不在视图中。
答案 0 :(得分:1)
如果你有一个填充的模型,你需要从中获取数据到你的淘汰模型。因此,要么使用System.Web.Helpers.Json.Encode()
,要么在视图中创建自己的JSON。
然后将该数据加载到您的挖空视图模型中。
var data = @Json.Encode(Model);
var ViewModel = function(data) {
var self = this;
self.Providers = ko.observableArray(data);
};
var viewmodel = new ViewModel(data);
ko.applyBindings(viewmodel);
然后在你的foreach中,使用Providers而不是viewmodel