2

我有一个使用 ASP.NET WebForms 构建的现有 Web 应用程序,我正在将其转换为 MVC 4.0。我有一个管理页面,允许用户在同一页面上为员工执行 CRUD 操作,例如编辑地址或通过动态添加用户控件同时添加多个地址。我已经实现了 ListView 用于在同一页面上显示、编辑和保存。现在,如果我想实现相同的目标,即在 MVC 中的同一视图上显示/编辑/保存,有人可以建议这种情况的良好做法。(ps 我已经为此类 CRUD 操作准备了部分视图)

任何帮助将不胜感激。

4

3 回答 3

2

是的,有很多方法可以在 MVC 中实现这一点。就像 ListView 一样,MVC 中也有很多第三方控件充当 ListView。但是如果您不想使用那些第三方控件,那么您可以使用 Table、Tr 和 Td。为此,让我们举个例子。您的模型正在返回数据列表,因此您需要在视图上显示该列表。因此,获取该列表并使用 foreach 循环并仅使用 Table、TH、TR 和 TD。您可以使用@Html.ActionLink 进行编辑、删除等。希望这会帮助你。

于 2013-09-30T06:08:20.287 回答
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");

    }
于 2013-09-30T06:46:55.357 回答
0

因为我想使用相同的视图来显示/编辑/保存,所以我找到了一个解决方案来实现 AJAX 并为 CRUD 操作呈现部分视图。这可以通过多种方式实现,但我选择了两个选项:

  1. 使用 @Ajax.BeginForm 和 jquery.unobtrusive-ajax.min 并获取部分视图。

  2. 使用 jQuery AJAX 来实现这一点。

这是我在 Stackoverflow 中发现的一个非常有用的链接: Using Ajax.BeginForm with ASP.NET MVC 3 Razor

(感谢大家的努力)

于 2013-09-30T07:53:31.110 回答