2013-09-30 53 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"); 

    }