2013-12-19 40 views
2

我有一些代碼似乎沒有正常工作。我確信只有一些我不知道的東西,但我已經打了很久的頭,並且已經無處可去。部分視圖方法返回空(似乎根本不會調用視圖)

這裏是AJAX調用:

$.ajax({ 
    type: 'POST', 
    url: '@Url.Action("GetPartial", "MyPage")', 
    async: true, 
    data: { 
     MyID: 'ABC123' 
    }, 
    error: function (jqXHR, textStatus, errorThrown) { 
     alert('Error loading partial for ' + MyId + '\n\n' + jqXHR + '-' + textStatus + '-' + errorThrown); 
    } 
}).done(function (result) { 
    $(data).html(result); 
}); 

這裏是MyPageController.cs動作:

[HttpPost] 
public PartialViewResult GetPartial(string MyID) 
{ 
    return PartialView("ThePartial"); 
} 

在我的意見diretory我有我的頁面子目錄,其中包含ThePartial.cshtml。

我已經在該cshtml中放置了斷點,並且它似乎沒有被調用過。

此外,我已經驗證PartialView是空的通過稍微改變我的行動代碼:

[HttpPost] 
public PartialViewResult GetPartial(string MyID) 
{ 
    PartialViewResult pView = PartialView("ThePartial"); 
    return pView; 
} 

,然後把一個斷點「返回」行,看PVIEW的內容。

以下是部分視圖的縮寫版本。

@model MyProject.Models.MyModel // There is a breakpoint here 
@{ 
    var x = "testing"; // There is a breakpoint here 
    x += " 123"; // There is a breakpoint here 
} 
<div>@x</div> 

我實際上在第一行,第三行和第四行上設置了斷點,它們從未被命中。

我意識到partial是指一個沒有包含在action中的數據模型,但是在實際的版本中使用了model。我從這篇文章中刪除了它,以保持簡短,認爲模型不是問題所在。以下是實際的PartialView調用:

MyData myData = MyModel.GetData(MyID); 
PartialViewResult pView = PartialView("ThePartial", myData); 

我完全失去了這一點,並希望得到任何幫助。

+0

你可以添加你的部分視圖列表嗎? – alexmac

+0

我從上面的代碼中刪除了對數據模型的引用,所以部分視圖沒什麼意義。但我會補充我所能做的。 – ESDictor

+0

調試中的pView是否爲空?我可以建議將PartialViewResult更改爲ActionResult,並嘗試渲染另一個,而不是部分視圖(正確顯示)。 – alexmac

回答

1

似乎在部分視圖中存在某種語法錯誤,並且除了不返回視圖之外,不會以任何方式報告錯誤。

要得出這樣的結論我做了以下內容:

我創建了一個簡單的局部視圖,包括:

<div>THIS IS A TEST</div> 

然後,我有我的行動回報這個觀點,並且它這樣做成功。

然後我從舊的(完整的)局部視圖複製代碼塊到新的,並在一個點上它停止返回任何東西。我現在正在通過代碼來縮小錯誤的位置。

我不得不說,我很不高興,沒有以任何方式報告錯誤。

謝謝大家誰在這裏貢獻了自己的想法。

0

您是否試過指定完整的部分視圖路徑來查看它是否被命中?

+0

我確認這不是與路徑相關的。我會稍後發佈答案。 – ESDictor