2012-06-27 30 views
0

我有一些困难,搞清楚如何在我的HTML.DropDownList在命中一个提交按钮返回选定的项目,这样,所选择的项目文本将在我的数据库中查找。以下是我有:获取HTML DROPDOWNLIST在剃刀网页所选项目

@{ 
var selectStaff = "Select LastName + ', ' + FirstName AS Name, StaffID From StaffList ORDER BY LastName"; 
var data = db.Query(selectStaff); 
var items = data.Select(i => new SelectListItem { 
    Text = i.Name 
    }); 
} 

然后在HTML ..

@Html.DropDownList("Select1", items) 

这工作得很好,因为我的下拉列表被击中时提交按钮的出现和被填充,但现在,我想能够在我的数据库中搜索所选项目的文本。我会如何去做这件事?

回答

1

如果您没有将下拉列表绑定到您的视图模型上的属性(这会更可取),您仍然可以在控制器操作中使用Request.Form["Select1"]

如果您的意思是您希望能够在剃须刀页面上获得价值,则需要使用jQuery(或其他javascript)来获取该值。

要使用jQuery获取值:

$(document).ready(function() { 
    $("#YourSubmitButtonID").click(function() { 
     // Get the value from 'Select1' 
     var value = $("#Select1").val(); 
    }); 
}); 

地做些事情的价值,你就必须使用AJAX功能,这样的事情:

$.ajax({ 
    url: '@Url.Action("ActionName", "ControllerName")', 
    data: { valueToQuery: $("#Select1").val() }, 
    success: function (data) { 
     // The data is the result 
    } 
}); 

名为ControllerName控制器在这个例子中,你必须查询数据库,并返回你的结果的代码。

public ActionResult ActionName(string valueToQuery) 
{ 
    // Do your stuff here 
    return Json("your result", , JsonRequestBehavior.AllowGet); 
{ 
0

我也发现THIS非常有趣,可以帮助你!

你也可以尝试下面的步骤,如果你不希望使用Ajax或JSON的战术:

var sql = "SELECT ProductId, ProductName FROM Products"; 
var data = Database.Open("Northwind").Query(sql); 
var items = data.Select(i => new SelectListItem { 
    Value = i.ProductId.ToString(), 
    Text = i.ProductName 
}); 


@Html.DropDownList("productid", items) 

也:

var sql = "SELECT ProductId, ProductName FROM Products"; 
var data = Database.Open("Northwind").Query(sql); 

<select name="productid"> 
@foreach(var row in data){ 
    <option value="@row.ProductId">@row.ProductName</option> 
} 
</select>