0

私はかみそりを使用してasp.net mvc3プロジェクトに参加しています。

データベースに保存されている選択したドロップダウン リスト項目の情報を取得する最も簡単な方法は何ですか? クライアント側にする必要があります-ドロップダウンリストのすぐ後ろにある画像アイコンにマウスを合わせます...

 

これを試しましたが、JavaScript コードに「Acronis」をハードコーディングしたくないため、完全ではありません。

見る:

<

script type="text/javascript">
    $(function () {
        var backup = document.getElementById("backupList")
        $('#backupList').change(function () {

            if (this.options[this.selectedIndex].text == 'Acronis') {
                $("#imageQm").show();
                $("#imageQm").attr('title', '@(Html.GetBackupDescription("Acronis"))');             }

        }).trigger('change');
    });
</script>
 @Html.DropDownList("backupList")

 <img id="imageQm" src="Images/question-icon.png" alt="?"  />

 

データベース:

Backup

ID Name      Description

1  Acronis   ...

 

public static class HtmlHelpers {

  public static string GetBackupDescription(this HtmlHelper helper, string s) {

    ChecklisteEntities db = new Entities();

    IQueryable<server_backup> query = from p in db.server_backup

                                      where p.name == s

                                      select p;

    List<server_backup> liste = query.ToList();

    return liste[0].description;

}

 

ご不明な点がございましたら、返信してください:)

ありがとう!

4

1 に答える 1

0

私の理解が正しければ、これを適切に機能させるにはいくつかの要素を追加する必要があります。カミソリ ビューに含めた内容は、アイテムがドロップダウンで選択されたときではなく、ビューが構築されたときに評価されます。

最初にビューに送信されるモデルの一部として追加の説明を提供するか、期待するデータを返すために呼び出すサービスを作成する必要があります。

ビュー内で「@」を前に付ける必要があるものはすべて、ビューがサーバー上で構築されるときにのみ評価されることに注意してください。これが完了すると、ブラウザに配信されるのは単純な html になります。

私の提案は、最初のビューで両方のデータを送信し、javascript でその値を単に dom から引き出して表示するようにすることです。

于 2012-12-21T21:08:58.877 に答える