2012-01-24 7 views
0

私の考えでは、ドロップダウンメニューから自分の名前を選択すると、ユーザーの機器の詳細を記述したHTMLテーブルを挿入したいと思います。私はページをリロードせずにこれをしたいので、私はAJAXソリューションを探しています。私の現在の解決策はうまくいきますが、そこにはもっと良い解決策があるはずです。AJAXでHTMLを動的にビューに挿入

私は(私はそこにHTMLテーブルをコーディングしようとするだけで、現時点では<p>タグを使用して、非常に厄介になるだろう)このようにjQueryを使用しています:へのPOSTリクエストを行い

$.getJSON(url, { networkName: $('#Incident_Caller_DomainUserID option:selected').text() }, function (data) { 
    $('#EquipmentList').empty(); 
    $.each(data, function (index, optionData) { 
     $('#EquipmentList').append('<p>' + optionData.Product + '</p>'); 
    }); 
}); 

AjaxDataコントローラのGetCallerEquipmentアクション

public JsonResult GetCallerEquipment(string networkName) 
{ 
    JsonResult result = new JsonResult(); 
    result.Data = repository.GetCallerEquipment(networkName); 
    result.JsonRequestBehavior = JsonRequestBehavior.AllowGet; 

    return result; 
} 

これについて部分的に表示できますか?それは最善の方法だと思いますが、どこから始めたらいいかわからないので、例やチュートリアルへのアドバイスやリンクは非常に高く評価されます。

ありがとうございました。

+0

jQueryのHTMLテーブルをスワップアウト+?あなたが好きなように聞こえるhttp://datatables.net/ –

答えて

2

部分的なビューは素晴らしいでしょう。

ちょうどあなたのコントローラの復帰1を作り、その後、このような何か:

$.get('@Url.Action("YourActionName", "YourControllerName")', 
     { anydata: youmaywanttopass }, 
     function(result) { 
      $("#EquipmentList").html(result); 
     } 
); 

それです。 get-requestから返された "result"は部分ビューhtmlになります。

1

これについて部分的に表示できますか?

確か:

public ActionResult GetCallerEquipment(string networkName) 
{ 
    var model = repository.GetCallerEquipment(networkName); 
    return PartialView(model); 
} 

してからGetCallerEquipment.cshtml部分の内側:

@model SomeViewModel 
<table> 
    ... 
</table> 

、その後:

var networkName = $('#Incident_Caller_DomainUserID option:selected').text(); 
$('#someContainer').load(url, { networkName: networkName }); 
+0

優れています。あなたの助けをもう一度ありがとう! –

関連する問題