Url.Action()
foreach のスコープ内にのみある変数にアクセスしようとしているため、これを実行できるかどうかはわかりません - おそらく jQuery を使用していますか?
検索結果のリストを含むビュー モデルを使用する、厳密に型指定された部分ビューがあります。
リストを反復処理すると、各結果が要約された形式で表示されます。リスト内の各項目の横には、クリックするとリスト項目に関する詳細情報を表示するモーダル ウィンドウを起動するボタンがあります。したがって、リストに 10 個の項目がある場合、対応する 10 個の [詳細] ボタンが表示されます。
部分図:
<div>
@foreach (var result in Model.SearchResults)
{
<div class="basic-search-result">
<div class="row-fluid">
<img class="span3" src="http://some-img.jpg" />
<div class="span3">
<div class="address">
@result.Address.TownCity<br />@result.Address.County
</div>
<div>
€@result.MonthlyRate Monthly
</div>
</div>
<div class="span3 offset1" id="basic-search-result-btns">
<button class="btn btn-primary btn-block" id="btn-show-modal-from-get-all">More info</button>
</div>
</div>
</div>
}
</div>
foreach ループのすぐ下で、モーダルを定義します (ViewProperty
モーダルの本体を含むパーシャルを返すコントローラー アクションです)。
<div class="modal hide fade in" id="modal-view-property-from-get-all"
data-url="@Url.Action("ViewProperty", "ResidentialProperties", new { id = result.ResidentialPropertyId })">
<div id="view-property-from-get-all-container"></div>
</div>
ボタンの 1 つがクリックされると、モーダルが起動します。次のように処理します。
<script type="text/javascript">
$(document).ready(function () {
$('#btn-show-modal-from-get-all').click(function () {
var url = $('#modal-view-property-from-get-all').data('url');
$.get(url, function (data) {
$('#view-property-from-get-all-container').html(data);
$('#modal-view-property-from-get-all').modal('show');
});
});
});
バインドしている IdUrl.Action()
が foreach の範囲外であることはわかっています。ボタンがクリックされたときに、何らかの方法で取得result.ResidentialPropertyId
して動的に渡すことは可能ですか?Url.Action()
それが機能していることを証明するためUrl.Action()
に、 foreach ループに入れましたが、これはリストの最初の項目のモーダルしか起動しませんでした。私がやろうとしていることは達成できますか?