我有一些代碼似乎沒有正常工作。我確信只有一些我不知道的東西,但我已經打了很久的頭,並且已經無處可去。部分視圖方法返回空(似乎根本不會調用視圖)
這裏是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);
我完全失去了這一點,並希望得到任何幫助。
你可以添加你的部分視圖列表嗎? – alexmac
我從上面的代碼中刪除了對數據模型的引用,所以部分視圖沒什麼意義。但我會補充我所能做的。 – ESDictor
調試中的pView是否爲空?我可以建議將PartialViewResult更改爲ActionResult,並嘗試渲染另一個,而不是部分視圖(正確顯示)。 – alexmac