2012-01-09 13 views
0

私はデータグリッドを更新する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"> 

が、それは私のすべてを見せているし、どのように私は停止することができ、それはすべての情報このヘッダのタイプを示す理由があります:たとえば、私は次のようなものを参照してください?

答えて

1

メリッサ、

私はあなたがpartialviewと呼ばれていると仮定しています_detail.cshtml(作成しない場合は作成する必要があります)??

私は実際にあなたのサンプルに基づいて 'full' view detail.cshtmlを呼び出すかもしれないと信じています。

public ActionResult Detail(string ac, string me) {  
    vm.AdminDetails = _link.Detail(ac + me).ToList();  
    if (Request.IsAjaxRequest())   
     return PartialView("_details", vm);  
    return View(vm); 
} 
+0

ませ部分図を:私はあなたが次の行に沿って、あなたの行動を呼び出していないことを示唆していると思います。これはjavascriptに戻るAjaxデータです。 –

+0

Melissa、これが機能するには部分的なビューが必要です。そうしないと、divは常にフルビューの内容で表示されます。必要な '部分的な'要素で部分的なビューを作成してください。 (また、上記の私の返答に従ってあなたの行動を修正してください) –

+0

ジム。 StanKがこの記事で言っていることを踏まえれば、私は彼が私に部分的な見解が必要だと言っているとは信じていません。たぶん私は間違ってそれを読んでいるだけですが、彼はそれが大丈夫と別のビューの言及をしないと言っているように思えるようですhttp://stackoverflow.com/questions/8782879/how-can-i-code-a-refresh-of -a-html-renderpartial-a-ajax-in-mvc3/8782887#comment10958218_8782887 –

0

X-Requested-With HTTPヘッダーが設定されていることを確認する必要があります。ブラウザにアドオンデベロッパーツール(ChromeとIE9が内蔵されているFirefoxのFirebugを入手してください)でアドオンを確認してください。 IsAjaxRequest(ブラウザの設定上の可能性に依存する)と、過去にoccuring異なる原因不明の問題があったとして、あなたは、異なるブラウザの下でコードをダブルチェックすることをお勧めします

関連する問題