2013-04-06 134 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