2011-04-07 91 views
1

我目前在左欄中顯示了一個樹形視圖。 當用戶選擇一個節點時,我正在加載右列#details以及來自ajax調用的響應。這很好地工作。MVC 3 Razor的主 - 詳細信息示例代碼(使用Ajax獲取詳細信息) - 第2部分

我現在想通過ajax提交正確的列#details。我能夠將帖子捕獲回服務器,但是當我將字符串返回到#details部分時,它正在使用字符串'saved successfully'加載整個頁面

我真的希望字符串'saved successfully'成爲放置在右列的div元素中。

這是一個ajax響應,再次做另一個ajax響應(我想返回到第一個ajax響應)。

這可能嗎?

我的編輯形式如下所示

@using (Ajax.BeginForm("Edit", new AjaxOptions { UpdateTargetId = "#results" })) { 


@Html.ValidationSummary(true) 

if (Model != null) {  
    <fieldset> 
    <legend>Code</legend> 

    @Html.HiddenFor(model => model.CodeID) 

    <div class="editor-label"> 
     @Html.LabelFor(model => model.Description) 
    </div> 
    <div class="editor-field"> 
     @Html.EditorFor(model => model.Description) 
     @Html.ValidationMessageFor(model => model.Description) 
    </div> 

    <div class="editor-label"> 
     @Html.LabelFor(model => model.Note) 
    </div> 
    <div class="editor-field"> 
     @Html.EditorFor(model => model.Note) 
     @Html.ValidationMessageFor(model => model.Note) 
    </div> 

    <div class="editor-label"> 
     @Html.LabelFor(model => model.DateModified) 
    </div> 
    <div class="editor-field"> 
     @Html.EditorFor(model => model.DateModified) 
     @Html.ValidationMessageFor(model => model.DateModified) 
    </div> 

    <div class="editor-label"> 
     @Html.LabelFor(model => model.TopicID) 
    </div> 
    <div class="editor-field"> 
     @Html.DropDownListFor(model => model.TopicID, (SelectList)ViewData["Topics"], "Select") 
     @Html.ValidationMessageFor(model => model.TopicID) 
    </div> 

    <div class="editor-label"> 
     @Html.LabelFor(model => model.Special) 
    </div> 
    <div class="editor-field"> 
     @Html.EditorFor(model => model.Special) 
     @Html.ValidationMessageFor(model => model.Special) 
    </div> 

    <div class="editor-label"> 
     @Html.LabelFor(model => model.Html) 
    </div> 
    <div class="editor-field"> 
     @Html.EditorFor(model => model.Html) 
     @Html.ValidationMessageFor(model => model.Html) 
    </div> 

    <p> 
     <input type="submit" value="Save" /> 
    </p> 
</fieldset> 
} 


} 


<div> 
    @Html.ActionLink("Back to List", "Index") 
</div> 

<div id="results"> 
    Status 
</div> 
+0

如果你想知道第一部分是什麼,那麼我認爲[這是它](http://stackoverflow.com/q/5532568/75500)。 – Shimmy 2013-04-17 13:55:31

回答

1

確保你已經包括下面的腳本到你的頁面,如果你想使用Ajax.*助手:

<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script> 

如果你不這樣做包括它沒有什麼可以讓Ajax。* helper發出的HTML5 data- *屬性有意義,並且AJAXify這個表單=>表單執行正常的提交併呈現結果。

+0

是否意味着我們不必在我們的頁面中包含MicrosoftAjax.js以使用Ajax.BeginForm和Ajax.ActionLink? – 2011-04-07 14:50:10

+1

@Muhammad Adeel Zahid,ASP.NET MVC 3 jQuery是默認的客戶端框架。沒有更多的MicrosoftAjax *腳本。您可以愉快地移除對這些過時和不贊成使用的庫的所有引用。 – 2011-04-07 14:50:55

+0

@感謝很多人 – 2011-04-07 14:54:25