2015-01-16 72 views
0

我是MVC和淘汰賽的新手。 我在我的視圖中有以下表格,這些表格正在使用淘汰賽進行綁定。從表中刪除一個記錄,並有敲除綁定

@using PagedList; 
    @using PagedList.Mvc; 
    @model IPagedList<DEMO_JAN14.Models.Provider> 
    @{ 
     Layout = "~/Views/Shared/_Layout.cshtml"; 
    } 
<head> 
    <title>LIST OF PROVIDERS</title> 
</head> 
<body> 
    <div class="container"> 
     <h1>Providers List</h1><br/> 
    <a class="btn btn-primary col-sm-1" href="/Provider/Create">Create</a>  <br/> 

    <table class="table table-bordered" id="tblData"> 
    <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>Delete</th> 
    </tr> 
    <tbody data-bind="foreach:viewModel.DataList"> 
     <tr> 
      <td class="col-lg-2" data-bind="text: ProviderType"></td> 
      <td class="col-lg-2" data-bind="text: FirstName"></td> 
      <td class="col-lg-2" data-bind="text: LastName"></td> 
      <td class="col-lg-2" data-bind="text: Certification"></td> 
      <td class="col-lg-2" data-bind="text: Specialization"></td> 
      <td class="col-lg-2" data-bind="text: SSN"></td> 
      <td class="col-lg-2" data-bind="text: FacilityName"></td> 
      <td class="col-lg-2" data-bind="text: ContactNumber"></td> 
      <td class="col-lg-2" data-bind="text: ContactEmail"></td> 
      <td><button type="button" id="Delete" class="btn btn-primary"  data-bind="click:$root.Delete">Delete</button></td> 
     </tr> 
    </tbody> 
    </table> 


 <script type="text/javascript" src="../../Scripts/knockout.mapping-latest.js"></script> 
    <script type="text/javascript" src="~/Scripts/Index.js"></script> 

    <script type="text/javascript"> 
    var data = @Html.Raw(Json.Encode(Model)); 
    //viewModel.DataList(ko.mapping.fromJS(data)); 
    //ko.applyBindings(viewModel2, $("#tblData")[0]); 
    </script> 

Index.js代碼如下。

function ProviderViewModel() { 
var self = this; 
self.ProviderID = ko.observable(""); 
self.ProviderType = ko.observable(""); 
self.FirstName = ko.observable(""); 
self.LastName = ko.observable(""); 
self.Certification = ko.observable(""); 
self.Specialization = ko.observable(""); 
self.SSN = ko.observable(""); 
self.ContactNumber = ko.observable(""); 
self.ContactEmail = ko.observable(""); 
self.FacilityName = ko.observable(""); 
self.DataList = ko.observableArray([]); 

var Provider = 
    { 
     ProviderID: self.ProviderID, 
     ProviderType: self.ProviderType, 
     FirstName: self.FirstName, 
     LastName: self.LastName, 
     Certification: self.Certification, 
     Specialization: self.Specialization, 
     SSN: self.SSN, 
     ContactNumber: self.ContactNumber, 
     ContactEmail: self.ContactEmail, 
     FacilityName: self.FacilityName, 
    }; 

self.Provider = ko.observable(); 
self.Providers = ko.observableArray(); 

// Delete Provider 
self.Delete = function (Provider) { 
    if (confirm('Are you sure you want to delete this row?')) { 
     var id = Provider.ProviderID(); 

     $.ajax({ 
      url: "/Provider/Delete", 
      cache: false, 
      type: 'POST', 
      contentType: 'application/json; charset=utf-8', 
      data: ko.toJSON(id), 
      success: function (data) { 
       self.Providers.remove(Provider); 
       // alert("Record Deleted Successfully"); 
      } 
     }).fail(
      function (xhr, textStatus, err) { 
       alert(err); 
      }); 
     } 
    } //Delete Provider 

} 

var viewModel = new ProviderViewModel(); 

$(document).ready(function() { 
if (data) 
    viewModel.DataList(ko.mapping.fromJS(data)()); 
ko.applyBindings(viewModel); 
}); 

控制器的動作方法如圖所示。

[HttpPost] 
    public ActionResult Delete(int id) 
    { 
     DAL.DeleteProvider(id); 
     return RedirectToAction("Index"); 
    } 

記錄沒有被刪除,我得到以下錯誤。 網址沒有找到,請您引導我以正確的方向。謝謝。

+0

嘗試將'data:ko.toJSON(id),'改爲'data:ko.toJSON({id:id})' – nemesv

+0

感謝您的答覆。我沒有發送帶有URL的ID,造成這個問題。關於如何重定向到「索引」操作方法的任何想法。就目前而言,重定向不會發生。我必須刷新頁面以查看已刪除的記錄。 –

回答

0

我不發送行的ID被刪除 網址應該是URL: 「/供應商/刪除/」 + Provider.ProviderID()

它現在工作的罰款。

儘管重定向到「索引」操作方法沒有發生。我必須刷新頁面以查看已刪除的記錄。

任何指導將有所幫助guys.Thanks。