2012-06-27 2 views
0

제출 버튼을 누르면 선택한 항목 텍스트가 내 데이터베이스에서 조회되도록 HTML.DropDownList에서 선택한 항목을 반환하는 방법을 파악하는 데 어려움이 있습니다. 이건 내 드롭 다운리스트가 제출 버튼을 눌렀을 때 현재 표시되고 채워집니다 만, 같이 잘 작동Razor 웹 페이지에서 HTML 드롭 다운 목록에서 선택된 항목 가져 오기

@Html.DropDownList("Select1", items) 

html로에서 다음

@{ 
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 
    }); 
} 

과 .. 내가 원하는 : 여기에 내가 무엇을 가지고 내 데이터베이스에서 선택한 항목의 해당 텍스트를 검색 할 수 있습니다. 이 일을 어떻게 하죠?

답변

1

보기 모델의 속성에 드롭 다운을 바인딩하지 않은 경우 (바람직한 경우) 컨트롤러 동작에 Request.Form["Select1"]을 사용하여 간단하게 가져올 수 있습니다.

여전히 면도기 페이지에서 값을 가져올 수 있다는 의미라면 jQuery (또는 다른 javascript)을 사용해야 값을 얻을 수 있습니다.

는 jQuery를 사용하여 값을 얻으려면 : 컨트롤러 명이라는 컨트롤러에서

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

:

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

이 값으로 무언가를 수행하려면 아약스 기능이 같은 것을 사용하는 것 이 예제에서는 데이터베이스를 쿼리하고 결과를 반환하는 코드를 사용합니다.

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

나는 또한 당신을 도울 수있는 매우 흥미로운 THIS을 발견했습니다!

당신이 아약스 또는 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> 
관련 문제