2013-04-06 136 views
0

为.net mvc创建部分视图时,是否必须为编辑动作创建一个视图,并且创建动作或一个局部视图对两个动作都足够了。在这里,我考虑与下拉列表,复选框等观点.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方法的页面,并将其用于创建行动,但对于编辑操作工程确定,数据未被加载。我得到一个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。

+0

编辑操作是什么意思? – Lars 2013-04-06 09:15:00

回答

0

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

根据您的更新1: 我没有看到你所指定的任务对象,你正在尝试在$ .load()调用进行编辑。我想至少你会想要传递一个查询字符串参数,如下所示:/things/trip?mission=23

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

+0

请参阅更新1 – mpora 2013-04-06 06:02:56

1

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

+0

请参阅更新1 – mpora 2013-04-06 06:03:20

0

视图只是一个模板。它可以用于任何行动,只要它能满足你的需求。

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

+0

请参阅更新1 – mpora 2013-04-06 06:03:48