我的問題是這樣的: 我必須點擊一個按鈕後刷新的局部視圖。此PartialView包含一個表格,其中填充了一個foreach
循環。我使用一個控制器動作ValidateControl,它給了我正確的數據(我已經手動檢查過)。但是,使用下面的代碼,當我點擊我的按鈕並完成治療時,表格是空的!它甚至不能正確顯示。C#MVC 5剃刀:更新與阿賈克斯的局部視圖失敗
我檢查了,似乎unobstrusive Ajax和JavaScript已啓用。我從我的控制器操作中獲得了正確的結果,但它似乎沒有正確顯示/顯示。我已經檢查了很多東西,但是我似乎很快就來了!你能幫我解決這個問題嗎?
視圖(相關代碼只):
<table class="contentTable contentTable-evo">
<thead>
<tr>
<th class="noWrap width1percent">
// Multiple THs with content, snipped out for length
</th>
</tr>
</thead>
<tbody id="tableControl">
@Html.Partial("_ControlTable")
</tbody>
</table>
局部視圖(僅適用於相關的代碼):
@model PagedList.IPagedList<ProjectName.Models.ArticleControl>
@using PagedList.Mvc
@using PagedList
@{
Layout = null;
int i = 0;
}
@foreach (var item in Model)
{
if (item.IsNewValue == 1)
{
<tr>
<td class="noWrap width1percent tri">
// Loads of <tr>s and <td>s after that.
腳本(相關代碼只):
function validateResults(data) {
$.ajax({
url: '@Url.Action("ValidateControl", "Article")',
type: "POST",
data: { data:data}
}).complete(function (result) {
$("#tableControl").html(result);
$("#divLoading").hide();
});
}
編輯 ValidateControl行動(相關代碼只):
using (var ctxt = new Connection(connectionName))
{
//Loads of code that isn't relevant but adds data to a database
ctxt.SaveChanges();
var control = new ArticlesControl(null, 0, 20);
return PartialView("_ControlTable", new StaticPagedList<ArticleControl>(control, 1, 20, control.NumberOfArticlesShown));
}
與最終代碼編輯: 爲了方便那些你從谷歌的到來,腳本必須居然是這樣爲了工作:
function validateResults(data) {
$.ajax({
url: '@Url.Action("ValidateControl", "Article")',
type: "POST",
data: { data:data},
success: function (result) {
$("#tableControl").html(result);
$("#divLoading").hide();
}
});
}
如何你ValidateControl行動樣子? –
編輯添加ValidateControl。 –