c# - asp.net mvc2 根据列表框值从数据库中选择值

标签 c# asp.net-mvc asp.net-mvc-2

我正在使用 asp.net mvc2。当我从列表框中选择一个项目时,我有一个列表框和文本框,该项目对应的值应该出现在数据库的文本框中。请帮助

最佳答案

您应该使用 JavaScript 来处理列表框选择更改。

阅读有关 Ajax 的内容,它需要在不重新加载页面的情况下从数据库中获取数据。

添加

示例如何处理列表框选择更改。

@Html.ListBox("nam",new SelectList(new string[]{"opt1","opt2"}),new {onchange = "javaScript:actch()", id = "namid"})
<script type="text/javascript">
    function actch() {
        alert(document.getElementById("namid").value);
    }
</script>

值“document.getElementById("namid").value”包含您选择的选项。

您应该将此值发送到服务器并接收请求

@Html.ListBox("nam",new SelectList(new string[]{"opt1","opt2"}),new {onchange = "javaScript:actch()", id = "namid"})
<script type="text/javascript">
    function actch() {
                 $.ajax({
                      url: "your url",
                      type: "POST",
                      data: "id = " + document.getElementById("namid").value,
                      success: function (data) {
                           // action on success  

                           document.getElementById("TextBoxId").value = data;              
                      },
                      error: function (jqXhr, textStatus, errorThrown) {
                           // action on fail                              
                      },
                      complete: function () {

                      }
                  });
    }
</script>

你必须写一个服务器请求部分,并配置ajax。 (我用过 jQuery)

新增:服务器请求部分(示例)

    [HttpPost]
    public MvcHtmlString Detail(string id)
    {
        var d = _db.GetVehicle(Convert.ToInt32(id));
        var sb = new StringBuilder();
        sb.AppendLine(string.Format("Type: {0}</br>", d.Type));
        sb.AppendLine(string.Format("Brand: {0}</br>", d.Brand));
        sb.AppendLine(string.Format("Model: {0}</br>", d.Model));
        sb.AppendLine(string.Format("Number: {0}</br>", d.Number));
        sb.AppendLine(string.Format("Year: {0}</br>", d.Year));
        sb.AppendLine(string.Format("Cost: {0}</br>", d.Cost));
        return new MvcHtmlString(sb.ToString());
    }

URL 看起来像:MyController/Detail/

ajax 的数据:"id="+ document.getElementById("namid").value

附言有人编辑/破坏了我的答案并且没有标记(

关于c# - asp.net mvc2 根据列表框值从数据库中选择值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7160454/

相关文章:

c# - 1对多关系

c# - 如何在分配 .Text 属性后显示 ASP.net 密码文本框控件的字符?

c# - 从 URL 获取条目

c# - 如何在MVC 5上实现索引和创建在同一个页面?

c# - Linq DELETE 在 SQL Server 中生成 UPDATE 查询

jquery - 如何确保我的 jQuery .ready 最终运行

c# - 轻松返回数组的单行

c# - 如何将字符串转换为变量引用?

javascript - Asp.Net MVC 5 Jquery 验证不适用于带有提交事件的 ajax post,显示为有效表单

asp.net-mvc - 用于 mvc 3 的 jquery ui 助手