MVC 컨트롤러에서 선택한 DropDownList 값 검색
이 가이드에서는 MVC 컨트롤러 내의 DropDownList에서 선택한 값에 액세스하는 일반적인 문제를 다룹니다.
문제: MVC 컨트롤러 작업의 DropDownList에서 사용자 선택을 효율적으로 캡처합니다.
컨트롤러 작업(초기 접근):
다음 코드는 FormCollection
:
<code class="language-csharp">[HttpPost] public ActionResult ShowAllMobileDetails(MobileViewModel MV) { string strDDLValue = Request.Form["ddlVendor"].ToString(); // Using FormCollection return View(MV); }</code>
모델:
<code class="language-csharp">public class MobileViewModel { public List<tbInsertMobile> MobileList; public SelectList Vendor { get; set; } }</code>
보기(일부):
<code class="language-html"><table> <tr> <td>Mobile Manufacturer</td> <td>@Html.DropDownList("ddlVendor", Model.Vendor, "Select Manufacturer")</td> </tr> </table></code>
해결책:
방법 1: Request.Form
또는 FormCollection
사용(덜 권장됨):
기능적이지만 Request.Form
에 직접 액세스하는 것은 문자열 조작에 의존하고 유형 안전성이 부족하기 때문에 일반적으로 덜 선호됩니다. 위의 코드는 이미 이 방법을 보여줍니다.
방법 2: 모델 바인딩(권장):
이 접근 방식은 MVC의 모델 바인딩 기능을 활용하여 더욱 깔끔하고 유지 관리가 용이한 솔루션을 제공합니다.
MobileViewModel
에 속성을 추가하세요.<code class="language-csharp">public class MobileViewModel { // ... existing properties ... public string SelectedVendor { get; set; } }</code>
Html.DropDownListFor
를 사용하여 DropDownList를 새 SelectedVendor
속성에 바인딩합니다.<code class="language-html">@Html.DropDownListFor(m => m.SelectedVendor, Model.Vendor, "Select Manufacturer")</code>
MV.SelectedVendor
속성에 자동으로 채워집니다.<code class="language-csharp">[HttpPost] public ActionResult ShowAllMobileDetails(MobileViewModel MV) { string strDDLValue = MV.SelectedVendor; return View(MV); }</code>
방법 3: 값과 텍스트 모두 검색(고급):
선택한 값과에 해당하는 텍스트를 모두 얻으려면 숨겨진 필드와 일부 jQuery가 필요합니다.
<code class="language-csharp">public class MobileViewModel { // ... existing properties ... public string SelectedVendor { get; set; } public string SelectedVendorText { get; set; } }</code>
<code class="language-javascript">$(function () { $("#SelectedVendor").on("change", function () { $("#SelectedVendorText").val($(this).find(":selected").text()); }); });</code>
<code class="language-html">@Html.DropDownListFor(m => m.SelectedVendor, Model.Vendor, "Select Manufacturer") @Html.HiddenFor(m => m.SelectedVendorText)</code>
이제 컨트롤러에서 MV.SelectedVendor
(값)과 MV.SelectedVendorText
(텍스트)를 모두 사용할 수 있습니다. 뷰에 jQuery 라이브러리를 포함하는 것을 잊지 마세요. 이것은 가장 강력한 솔루션입니다.
귀하의 요구 사항과 코딩 스타일에 가장 적합한 솔루션을 선택하는 것을 잊지 마세요. 일반적으로 모델 바인딩(방법 2 및 3)은 명확성과 유지 관리 용이성을 위해 권장됩니다.
위 내용은 MVC 컨트롤러에서 DropDownList의 선택된 값을 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!