2011-01-28 15 views
0

例えば、いくつかのコントロールを部分的にレンダリングしたい。 彼女の私のコード:asp mvc 2部分的レンダリング

ここ
<script type="text/javascript"> 

     $("#datetime").datepicker({ dateFormat: 'dd.mm.yy', onSelect: function (dateText, inst) { 
      $.ajax({ 
       type: 'POST', 
       data: 
       { 
        datetime: dateText 
       }, 
       url: '<%= VirtualPathUtility.ToAbsolute("~/ExcelToHtml") %>', 
       async: true, 
       success: function (response) { $('#report').html(response) } 
      }); 
     } 
     }); 
</script> 
<div id="report"> 
</div> 

サーバコード:

public PartialViewResult ExcelToHtml(DateTime datetime) { 
     ViewData["datetime"] = datetime; 
     return PartialView("ExcelToHtml"); 
    } 

は今、私はDIV(ID =報告書)には、私の日付を見てみたいが、私はそれを参照してくださいいけません。 thatsちょうど私が間違っているのは分かりません。

と制御ExcelToHtml.ascx:私はちょうどあなたがそれがアクション名と同じであるとき、ビュー名を指定する必要はありませんことを指摘したかった

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %> 

<% ViewData["datetime"].ToString(); %> 

答えて

0

まず、...

public PartialViewResult ExcelToHtml(DateTime datetime) { 
    ViewData["datetime"] = datetime; 
    return PartialView(); 
} 

第二に、あなたのメカニズムの作品をチェックするために、ちょうど...何もないとの部分図にプレースホルダを置く

<p>Hello World</p> 

"Hello World"がdivにロードされているようです。

これは次の点につながります。ビューのコードを共有することはできますか?私はエラーがその中にある可能性が最も高いと考えています。

+0

のHello World

に挿入され得るかどうかを見るには、私は思った – eba

+0

作品おそらく問題はAJAX経由で何も返されないことを意味するエラーであると考えているからです。 – Fenton

0

返信する必要がある場合は、jsonとしてdatetimeを返すことをお勧めします。

しかし、始めましょう。

  1. 日付を選択するとExcelToHtmlメソッドが呼び出されますか?そこにブレークポイントを設定して呼び出されるかどうか確認しましたか?
  2. ExcelToHtmlの部分ビューは何を持っていますか?私はあなたが$ .ajaxの成功イベントで何かをしようとしているのを見ていません。あなたはおそらく行う必要があります:$('#report').html(response);

これを試してください。 が真で、の場合はどうなるのか教えてください。

$('#report').html(response) 

へ:あなたのjQueryの変更で

+0

私はjsonを使用できることを知っていますが、私はメカニズムを理解したい – eba

0

$('#report').html(response.responseText) 

そして、あなたは今、実際のHTMLを返すとあなたのDIV

関連する問題