我想實現一種Ajax方式來更新我的數據網格。到目前爲止,我已經編寫了以下在我的控制器:實現Ajax以返回MVC3中的HTML.Partial頁面的問題
public ActionResult Detail(string ac, string me) {
vm.AdminDetails = _link.Detail(ac + me).ToList();
if (Request.IsAjaxRequest())
return PartialView(vm);
return View(vm);
}
我的觀點的快照看起來是這樣的:
@model ViewModels.Shared.BaseViewModel
@{
Layout = "~/Areas/Administration/Views/Menus/_Layout.cshtml";
}
@section content {
<div class="bdy_box">
<div id="detailData" class="rep_tb0">
// code to generate the list of data
</div>
</div>
我的JavaScript的快照看起來是這樣的:
function reload(entity, pk) {
$.ajax({
url: "/Administration/" + entity + "s/Detail",
data: { pk: pk },
dataType: 'html',
cache: false,
success: function (responseText) {
$('#detailData').html(responseText);
}
});
};
數據確實得到返回,但我的問題是其他數據也得到返回。當我看看detailData div的內容時,我看到的遠遠超過我需要的。比如我看到類似以下內容:
<div class="rep_tb0" id="detailData">
<title></title>
<meta content="" name="title">
<meta content="" name="description">
<meta content="" name="keywords">
<link type="image/x-icon" href="/Content/Favicons/default.ico" rel="shortcut icon">
<link type="text/css" rel="stylesheet" href="/Content/Stylesheets/Style203.css">
是否有一個原因,它顯示了我這一切,以及它如何我可以停止放映的所有信息這個頭型?
沒有局部視圖。這是Ajax數據回到JavaScript。 – 2012-01-09 09:31:46
梅麗莎,你需要有一個局部視圖才能工作,否則,你的div總是會填滿整個視圖的內容。用所需的「部分」元素創建一個局部視圖,你會很開心。 (同樣,根據我上面的回覆,修改你的行動) – 2012-01-09 10:04:27
Jim。按照斯坦克在這篇文章中所說的話,我不認爲他說我需要局部的觀點。也許我只是讀錯了,但似乎他說這將是好的,並沒有提到另一種觀點http://stackoverflow.com/questions/8782879/how-can-i-code-a-refresh-of -a-HTML-使用的Ajax功能於MVC3的RenderPartial-/ 8782887#comment10958218_8782887 – 2012-01-09 10:47:16