0

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 ループに入れましたが、これはリストの最初の項目のモーダルしか起動しませんでした。私がやろうとしていることは達成できますか?

4

1 に答える 1