asp.net mvc3 포스트 백 이후에 선택한 항목을 드롭 다운 목록에 유지하는 방법.포스트 백 이후 드롭 다운 목록을 선택한 값으로 유지하는 방법
답변
선택한 항목이 게시물의 일부인 것으로 가정하면 컨트롤러가 현재 무엇인지 알고 있습니다. 어떤 항목이 선택되어야 하는지를 나타내는 ViewData 사전 엔트리를 가지기 만하면됩니다. 뷰에서 값을 확인하고 null이 아닌 경우 적절한 옵션을 선택하십시오.
MVC는 ViewState를 사용하지 않으므로 값 지속성을 직접 관리해야합니다. 일반적으로 이것은 모델을 통해 수행됩니다.
public class MyViewModel { }
그리고 컨트롤러 : 그래서, 당신이보기 모델, 예를 들어이 주어진 이제
public class MyController : Controller
{
public ActionResult Something()
{
return View(new MyViewModel());
}
public ActionResult Something(MyViewModel model)
{
if (!ModelState.IsValid)
return View(model);
return RedirectToAction("Index");
}
}
을, 당신은 데이터 뷰에 다시 모델을 통과 할 때 (아마도 잘못된 - 유효성 검증에 실패했습니다) 당신이 당신의 DropDownListFor
방법을 사용할 때, 단지 값 전달 :
@Model.DropDownListFor(m => m.Whatever, new SelectList(...))
... 등
MVC의 모델 바인딩은 모델로 데이터를 읽는 것을 처리 할 것이므로 같은 값을 다시 표시하려면 뷰에 다시 전달해야합니다. 이처럼
어떻게 좀 :
[HttpPost]
public ActionResult Create(FormCollection collection)
{ if (TryUpdateModel(yourmodel))
{ //your logic
return RedirectToAction("Index");
}
int selectedvalue = Convert.ToInt32(collection["selectedValue"]);
ViewData["dropdownlist"] = new SelectList(getAllEvents.ToList(), "EventID", "Name", selectedvalue);// your dropdownlist
return View();
}
그리고보기 :
<%: Html.DropDownListFor(model => model.ProductID, (SelectList)ViewData["dropdownlist"])%>
더 쉬운, 당신은 당신의 ActionResult 입력 매개 변수에 드롭 다운의 이름 (들)을 포함 할 수 있습니다. 드롭 다운은 양식 태그에 있어야합니다. ActionResult가 게시되면 ASP.Net은 쿼리 문자열, 양식 값 및 쿠키를 반복합니다. 드롭 다운 이름을 포함하는 한 선택한 값이 보존됩니다.
여기에는 ActionResult에 게시하는 3 개의 드롭 다운이있는 양식이 있습니다. 드롭 다운 이름은 대소 문자를 구분하지 않습니다 : ReportName, Year 및 Month입니다.
//MAKE SURE TO ACCEPT THE VALUES FOR REPORTNAME, YEAR, AND MONTH SO THAT THEY PERSIST IN THE DROPDOWNS EVEN AFTER POST!!!!
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult ReportSelection(string reportName, string year, string month)
{
PopulateFilterDrowdowns();
return View("NameOfMyView");
}
HttpRequestBase 개체를 사용하십시오. 뷰에서 이 작동합니다 :
@Html.DropDownList("mydropdown", ViewBag.Itens as IEnumerable<SelectListItem>, new { value = Request["mydropdown"] })
당신이 컨트롤러의 동작 방법의 목록 데이터 소스 드롭 다운을 구축하는 경우 사용자가 선택한 값을 보낼 수 있습니다이를
컨트롤러 :
public ActionResult Index(int serviceid=0)
{
// build the drop down list data source
List<Service> services = db.Service.ToList();
services.Insert(0, new Service() { ServiceID = 0, ServiceName = "All" });
// serviceid is the selected value you want to maintain
ViewBag.ServicesList = new SelectList(services, "ServiceID", "ServiceName",serviceid);
if (serviceid == 0)
{
//do something
}
else
{
// do another thing
}
return View();
}
보기 :
//ServiceList is coming from ViewBag
@Html.DropDownList("ServicesList", null, htmlAttributes: new { @class = "form-control" })
- 1. Page 포스트 백 드롭 다운 목록을 초기화합니다.
- 2. 포스트 백 이후 항목 유지하기
- 3. 드롭 다운 목록을 선택한 값으로 기본 설정하려면 어떻게합니까?
- 4. 포스트 백 이후 상태보기 VB?
- 5. asp.net 포스트 백 이후 포스트 백 후 문제가 발생합니다.
- 6. 드롭 다운 목록을 바인딩하는 방법
- 7. 드롭 다운 목록을 추가하는 방법
- 8. jQuery를 사용하여 드롭 다운 목록에서 선택한 항목을 설정하는 방법
- 9. 포스트 백 이후 코드에서 jQuery 함수 호출
- 10. mvc.net의 드롭 다운리스트에 자동 포스트 백
- 11. 데이터베이스에서 선택한 값을 드롭 다운
- 12. 다른 드롭 다운 목록으로 드롭 다운 목록을 설정하는 방법
- 13. asp.net MVC 웹 응용 프로그램의 다른 드롭 다운 목록을 사용하여 드롭 다운 목록을 필터링하는 방법
- 14. 자바 스크립트가없는 드롭 다운 목록을 사용하여 ASP.NET Webform과 같은 포스트 백 효과를 얻을 수 있습니까?
- 15. 자바 (스트럿츠)에서 드롭 다운 목록의 선택된 값을 유지하는 방법
- 16. 드롭 다운 선택, 선택한 옵션
- 17. Codeigniter에서 데이터베이스의 드롭 다운 목록을 채우는 방법?
- 18. 부분 포스트 백 페이지 후에 UpdatePanel에서 포커스 위치를 유지하는 방법
- 19. SharePoint 드롭 다운 목록에서 선택한 값
- 20. ASP 드롭 다운 목록에서 선택한 값
- 21. HTML5에 드롭 된 내용의 포스트 백
- 22. 드롭 다운 선택한 인덱스에서 페이지 다시 게시를 피하는 방법
- 23. Watin : 드롭 다운 목록을 가져
- 24. 드롭 다운 목록을 int로 변환
- 25. ASP.NET의 드롭 다운에서 수정 된 쿼리 문자열을 사용하여 포스트 백
- 26. 포스트 백 PHP
- 27. 드롭 다운 목록을 기반으로 단추 표시/숨기기
- 28. 마스터 페이지보기 및 포스트 백
- 29. JSP 드롭 다운 목록 - 선택한 항목 사용
- 30. 드롭 다운 상자 (선택) 포스트 백에 URL을 설정 하시겠습니까?