2015-02-07 146 views
1

在asp.net ajax中,局部視圖響應替換了html,只渲染了部分視圖。 在下面的代碼片段中,當我單擊ActionLink「Steps」時,將返回部分視圖並替換Details.cshtml。在asp.net中渲染局部視圖的錯誤mvc ajax

我需要的是這個局部視圖應該只替換「main-content-div」div。

請幫忙。由於

查看:Details.cshtml

<div class="main-body"> 

<table> 
    <tr> 
     <td class="left-sidebar extended"> 

      @Ajax.ActionLink("Steps", "Steps", new { id = ViewBag.Id }, new AjaxOptions { AllowCache = false, UpdateTargetId = "main-content-div", InsertionMode=InsertionMode.Replace }) 
     </td> 
     <td class="main-wrapper"> 

      <div class="main-content" id="main-content-div"> 
       This is the default stuff which I'll be replacing... 
      </div> 
     </td> 
     <td class="right-sidebar"></td> 
    </tr> 

</table> 

操作方法:

[HttpGet] 
    public PartialViewResult Steps(string id) 
    { 
     //reading model from db 
     return PartialView("~/Views/Author/Exercise/_StepsPartial.cshtml", Model); 
    } 

管窺:

@model IEnumerable<Model> 
<div> 
    <div> 
     <input type="text" /> 
    </div> 
</div> 
+0

可能因爲你沒有加載正確的腳本,或者它們處於扭曲狀態。 – 2015-02-07 11:27:13

回答

2

您需要添加jquery.unobtrusive-ajax.min.js到您的PROJ等這個工作。

轉到的NuGet控制檯軟件包管理器控制檯,然後輸入:

Install-Package Microsoft.jQuery.Unobtrusive.Ajax 

然後,您只需要在您的_Layout.cshtml頂部添加一個引用或查看到相關的腳本:

<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script> 
相關問題