2013-09-30 84 views
2

我有一個使用ASP.NET WebForms構建的現有Web應用程序,我將它轉換爲MVC 4.0。我有一個管理頁面,允許用戶在同一頁面上爲員工(如編輯地址)執行CRUD操作,或者通過動態添加用戶控件來同時添加多個地址。我已經實現了ListView在同一頁面上顯示,編輯和保存。現在,如果我想實現同樣的事情,即顯示/編輯/保存在MVC的相同視圖可以有人建議這種情況下的良好做法。 (p.s.我有部分視圖準備好這樣的增刪改查操作)ListView像在ASP.NET MVC中的實現

任何幫助將不勝感激。

+0

組合可以制定出這樣的場景。 – Imran

回答

0

,因爲我想使用相同的視圖來顯示/編輯/保存,我找到了一個解決方案來實現AJAX併爲CRUD操作渲染部分視圖。這可以通過多種方式來實現,但是我選擇了兩個選項:

  1. 使用@ Ajax.BeginForm和jquery.unobtrusive-ajax.min,只是取partialview。

  2. 使用jQuery AJAX實現此目的。

這裏是一個鏈接,我在#1很有幫助發現: Using Ajax.BeginForm with ASP.NET MVC 3 Razor

(感謝大家的努力)jQuery的數據表和情態動詞的

2

是的,有很多方法可以在MVC中實現這一點。就像ListView一樣,有許多第三方控件在MVC中充當ListView。但是如果你不想使用這些第三方控件,那麼你可以使用Table,Tr和Td。爲此,我們舉個例子。您的模型正在返回數據列表,以便您需要在視圖上顯示該列表。所以得到這個列表並使用foreach循環,並使用Table,TH,TR和TD。您可以使用@ Html.ActionLink進行編輯,刪除等。希望這會幫助你。

2

我已經實現MVC開發的類似的事情:

查看:

// Creating html Table from data present in model 
    <table class="content-wrapper"> 
     <tr> 
      <th> 
       @Html.DisplayName("Name") 
      </th> 
      <th> 
       @Html.DisplayName("ID") 
      </th> 
      <th> 
       @Html.DisplayName("Designation") 
      </th> 
      <th> 
      </th> 
     </tr> 
     @foreach (var item in Model.lstEmployees) 
     { 
      <tr> 
       <td> 
        @Html.DisplayFor(modelItem => item.name) 
       </td> 
       <td> 
        @Html.DisplayFor(modelItem => item.id) 
       </td> 
       <td> 
        @Html.DisplayFor(modelItem => item.designation) 
       </td> 
       <td> 
        @Html.ActionLink("Edit", "Edit", new { id = item.id }) 
        @Html.ActionLink("Delete", "Delete", new { id = item.id }) 
       </td> 
      </tr> 
     } 

控制器:

public ActionResult Delete(Data model) 
{ 
    //Code for delete 
    return View("Index", data); 
} 

[HttpGet] 
     public ActionResult Edit(Int32 Id) 
     { 
      //code for binding the existing records 
      return View(_data); 
     } 



    [HttpPost] 
    public ActionResult Edit(string sampleDropdown, Data model) 
    { 
     //code for saving the updated data 
     return RedirectToAction("Index", "Home"); 

    }