0

我在使用 razor 的 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 回答