2017-12-03 7 views
0

asp.net MVC Core 2.0 응용 프로그램에서 작업하고 있습니다.asp.net core mvc 필터 선택 목록

나는 목록이있는 페이지가 있습니다.

이 페이지의 맨 위에 여러 개의 드롭 다운 목록을 넣고 싶습니다. 이 드롭 다운은 필터입니다.

 public async Task<IActionResult> Index(String selected_genre) 
     { 
      ViewBag.genres = new SelectList(new [] 
       { 
        new { id = "", name = "All" }, 
        new { id = "1", name = "Male" }, 
        new { id = "2", name = "Female" }, 
        new { id = "3", name = "Don't know" }, 
       }, 
       "id", "name", selected_genre); 
      ... 

할 원하는 것은 다시로드하는 것입니다

여기
@model List<Person> 

Genre : <select asp-items="ViewBag.genres"></select> 

<table border="1"> 
@foreach (var item in Model) 
{ 
    <tr> 
      <td>@item.name</td> 
      <td>@item.genre</td> 
      ... 
     </tr> 
} 

연관된 컨트롤러 액션 방법입니다 : 여기

내 cshtml보기입니다 : 여기

은 예입니다 사용자가 장르 드롭 다운에서 항목을 선택할 때

사용자가 "여자"를 선택하면

, 내가 페이지를 다시로드하려면 :

http://myapplication/MyController/Index?selected_genre=2&param2=3

(난 내 예에 PARAM2 = 3을 넣어 이유는) 다른 필터가있을 수 있습니다.

저는 자바 스크립트 (onchange 이벤트)와 함께 작동하도록했습니다. 그것은 작동하지만 아주 추합니다.

나는

감사

답변

0

을 간단히하면 형태

<form method="get" action="~/"> 
    <select name="selected_genre" asp-items="ViewBag.genres"></select> 
    ... 
</form> 

으로 필터와 PARAMS 추가를 ASP.Net 코어와 함께이 작업을 수행이 기능 할 수있는 방법이 있는지 알고 싶어요 제출 버튼이 없으면 선택 물을 onchange과 함께 제출하십시오.