>백엔드 개발 >C++ >MVC 컨트롤러에서 DropDownList의 선택된 값을 검색하는 방법은 무엇입니까?

MVC 컨트롤러에서 DropDownList의 선택된 값을 검색하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2025-01-14 11:44:14878검색

How to Retrieve a DropDownList's Selected Value in an MVC Controller?

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의 모델 바인딩 기능을 활용하여 더욱 깔끔하고 유지 관리가 용이한 솔루션을 제공합니다.

  1. 모델 향상: 선택한 공급업체의 가치를 구체적으로 유지하려면 MobileViewModel에 속성을 추가하세요.
<code class="language-csharp">public class MobileViewModel 
{
    // ... existing properties ...
    public string SelectedVendor { get; set; }
}</code>
  1. 뷰 업데이트: Html.DropDownListFor를 사용하여 DropDownList를 새 SelectedVendor 속성에 바인딩합니다.
<code class="language-html">@Html.DropDownListFor(m => m.SelectedVendor, Model.Vendor, "Select Manufacturer")</code>
  1. 세련된 컨트롤러 작업: 이제 선택한 값이 MV.SelectedVendor 속성에 자동으로 채워집니다.
<code class="language-csharp">[HttpPost]
public ActionResult ShowAllMobileDetails(MobileViewModel MV)
{           
   string strDDLValue = MV.SelectedVendor;
   return View(MV);
}</code>

방법 3: 값과 텍스트 모두 검색(고급):

선택한 값에 해당하는 텍스트를 모두 얻으려면 숨겨진 필드와 일부 jQuery가 필요합니다.

  1. 모델 확장: 선택한 공급업체의 텍스트를 저장할 속성 추가:
<code class="language-csharp">public class MobileViewModel 
{
    // ... existing properties ...
    public string SelectedVendor { get; set; }
    public string SelectedVendorText { get; set; }
}</code>
  1. jQuery 추가: 뷰에 jQuery를 포함하고 이를 사용하여 DropDownList 선택이 변경될 때마다 숨겨진 필드를 업데이트합니다.
<code class="language-javascript">$(function () {
    $("#SelectedVendor").on("change", function () {
        $("#SelectedVendorText").val($(this).find(":selected").text());
    });
});</code>
  1. 뷰에 숨겨진 필드 추가:
<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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.