私はデータグリッドを更新するAjaxの方法を実装しようとしています。これまでのところ、私は私のコントローラで次のようにコーディングされています:MVC3でHTML.Partialページを返すためにAjaxを実装する際の問題
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">
が、それは私のすべてを見せているし、どのように私は停止することができ、それはすべての情報このヘッダのタイプを示す理由があります:たとえば、私は次のようなものを参照してください?
ませ部分図を:私はあなたが次の行に沿って、あなたの行動を呼び出していないことを示唆していると思います。これはjavascriptに戻るAjaxデータです。 –
Melissa、これが機能するには部分的なビューが必要です。そうしないと、divは常にフルビューの内容で表示されます。必要な '部分的な'要素で部分的なビューを作成してください。 (また、上記の私の返答に従ってあなたの行動を修正してください) –
ジム。 StanKがこの記事で言っていることを踏まえれば、私は彼が私に部分的な見解が必要だと言っているとは信じていません。たぶん私は間違ってそれを読んでいるだけですが、彼はそれが大丈夫と別のビューの言及をしないと言っているように思えるようですhttp://stackoverflow.com/questions/8782879/how-can-i-code-a-refresh-of -a-html-renderpartial-a-ajax-in-mvc3/8782887#comment10958218_8782887 –