0

为 .net mvc 创建部分视图时,是否必须为编辑操作创建一个,而创建操作或一个部分视图对于这两个操作都足够了。在这里,我正在考虑带有下拉列表、复选框等的视图。

更新 1

这是我今天一直在努力的事情:

我有一个有几个成员的模型,我创建了部分视图,如下所示:

在控制器中我有:

Public ActionResult trip()
{
  return View();
}

在视图文件夹 (trip.cshtml) 中:

@model tests.Models.Mission
<div id="contents">

<div class="editor-label">
 @Html.LabelFor(model => model.tripName, "tripName")
</div>
<div class="editor-field">
 @Html.DropDownList("tripName", String.Empty)
 @Html.ValidationMessageFor(model => model.tripName)
</div>
<div class="editor-label">
 @Html.LabelFor(model => model.giftname)
</div>
<div class="editor-field">
 @Html.EditorFor(model => model.giftname)
 @Html.ValidationMessageFor(model => model.giftname)
</div>

在编辑操作中:

我正在使用 jQueryload方法加载页面,它适用于 Create 操作,但对于 Edit 操作,没有加载数据。我收到 404 错误

$("#dynamicForm").load("/things/trip #contents", function(response, status, xhr) {
                    if (status == "error") {
                        var msg = "";
                        $("#dynamicForm").html(msg + xhr.status + " " + xhr.statusText);
                    }
                });

是的,我已经尝试过@Html.RenderPartial并且它有效,但是这个示例我正在尝试使用 jQuery。

4

3 回答 3

1

如果需要,您可以使用单个局部视图,并将其绑定到您的模型。在编辑情况下,它将填充数据,而在创建模式下,它将绑定到空模型对象。

于 2013-04-06T03:56:45.943 回答
0

这将取决于您的型号。在大多数情况下,创建/编辑基于相同的模型,因此您应该能够引用一个局部视图......这使得它变得又好又干。

根据您的更新 1: 我没有看到您在 $.load() 调用中指定您尝试编辑的任务对象的位置。我想至少你会想像这样传递一个查询字符串参数:/things/trip?mission=23

否则,您的控制器操作不知道将哪些数据加载到视图中并在响应中发回,如果您收到 404 错误...请确保您的路径对于控制器操作是正确的。

于 2013-04-06T03:56:18.600 回答
0

视图只是一个模板。它可以与任何操作一起使用,只要它执行您需要的操作即可。

更大的问题是,您的编辑和创建是否因其功能而需要不同的模板?

于 2013-04-06T03:56:54.387 回答