模型未绑定到 asp.net MVC 中的视图

Model not getting bound to the view in asp.net MVC

我正在尝试在 table.The 代码中显示提供者列表以获取提供者列表如下

     public ActionResult Index()
    {
        DAL2 dal = new DAL2();
        Provider patientlist = new Provider();
        List<Provider> providers = dal.GetListofProviders.ToList();
        return View(providers);
    }

以上代码有效fine.I 正在按预期获取提供商列表。

视图中的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>

我的提供商class如下:

  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);

列表未显示在 table.There 似乎是 html 顶部的错误 model.I 不明白为什么 though.Am 我做错了什么?请指导我正确的方向。

非常感谢你们所有的帮助,但我犯了一个错误 earlier.In 索引操作,我看到了提供者列表,但我没有在 view.So 中得到任何数据,我有数据在控制器中,但不在视图中。

如果您有填充模型,则需要将数据从中提取到您的淘汰模型中。因此,要么使用 System.Web.Helpers.Json.Encode(),要么在视图中创建自己的 JSON。

然后将该数据加载到您的 Knockout 视图模型中。

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 中,使用 Provider 而不是 viewmodel