2012-08-01 4 views
1

"범주"테이블의 모든 범주를 나타내는 드롭 다운 목록을 만드는 방법을 알아야합니다. 컨트롤러에서 :MVC3의 LINQ 쿼리에서 DropDownList를 만드는 방법은 무엇입니까?

var dbcontext = new LNQ2SQLDataContext(); 
     var Q = from P in dbcontext.Categories 
       where P.SUB_CAT == null 
       select P; 

나는 이런 내 생각이 "Q"를 전달할 수 있습니다

나는 이미 LINQ 쿼리를 사용하여 이름과 내가 필요로하는 각 범주의 값을 추출한

return View(Q); 

그리고보기 :

@model IEnumerable<MyAppName.Models.Category> 

그러나 나는 아무 생각하는 방법이 없습니다 @html.DropDownListFor()을 사용하여 모델에서 좋은 드롭 다운 목록을 만들 수 있습니다. : |

PLUS :

내가 같은 쿼리 "Q"에서 SelectList을 만들 수 있습니다 : 나는 드롭 다운 목록을 만드는 방법을 모르는

var category_list = new SelectList(Q, "CAT_ID", "CAT_Name"); 

하지만을 (없이 간단한 SelectList에서 ViewBag을 사용하여 category_list을보기로 전달하십시오.

최대한 많은 블로그와 웹 사이트를 검색했습니다. 하지만 그들은 내 문제에 대한 해결책이 없었습니다. 나는 점점 더 혼란에 빠졌습니다!

아무도 도와 드릴 수 있습니까? :/

+0

[this] (http://stackoverflow.com/questions/5070762/mvc3-razor-html-dropdownlistfor) 및 [this] (http://stackoverflow.com/questions/3057873/how-to-write- a-simple-html-dropdownlistfor)가 도움이 될 수 있습니다 ... – Yasser

+0

및 [this] (http://stackoverflow.com/questions/5098848/help-me-understand-understand-how-to-work-with-dropdownlistfor- in-mvc3? rq = 1) –

답변

1

DropDownListFor를 사용하려면 SelectList가있는 모델 또는 선택 목록을 만들 데이터가 있어야하며 드롭 다운의 선택된 값을 저장하는 속성이 있어야합니다. 또는 ViewBag를 사용하여 category_list를 전달할 수도 있습니다. 그래서 당신은 ...

Public Class MyViewModel 
{ 
    Public Integer SelectedCategory { get; set; } 
    Public SelectList Categories { get; set; } 
} 

Public Class ItemsController : Controller 
{ 
    Public ActionResult Index() 
    { 
     var dbcontext = new LNQ2SQLDataContext(); 
     var Q = from P in dbcontext.Categories 
       where P.SUB_CAT == null 
       select P; 
     var vm = new MyViewModel(); 
     vm.Categories = new SelectList(Q, "CategoryID", "Name"); 
     return View(vm); 
    } 

    [HttpPost()] 
    Public ActionResult Index(MyViewModel vm) 
    { 
     var theSelectedCategory = vm.SelectedCategory; 
    } 
} 

뷰는 것와

@model MyViewModel 
@Html.DropDownListFor(model => model.SelectedCategory, Model.Categories, "Select Category") 

주를 갈 수있다 : 나는 그래서 구문을 보장 할 수 없습니다 C#으로하지 일반적으로 코드를 어떻게 정확히 맞아 .

+0

고맙습니다. MHollis! 작동합니다 : – Ali

+0

[httppost] actionresult에 오류가 반환됩니다 ... 모델이 null이라고! – Ali

+0

'@Html.DropDownListFor'를 중심으로'@Using Html.BeginForm'을 사용하고 제출 버튼을 사용하고 있습니까? – MHollis

관련 문제