【问题标题】:.net mvc partial view.net mvc 局部视图
【发布时间】:2013-04-06 03:49:55
【问题描述】:

在为 .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>

在编辑操作中:

我正在使用 jQuery load 方法加载页面,它适用于 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。

【问题讨论】:

  • 编辑操作是什么意思?

标签: .net asp.net-mvc partial-views


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多