ASP.NET/ASP.NET Core

[ASP.Net Core] Radio박스에서 Checked 와 Select 박스 option Selected 처리하기

http://portfolio.wonpaper.net 2023. 4. 19. 09:33

Razor View 페이지 상에서 바로 selected 나 checked 처리해보자.

 

1
<input type="radio" id="Person" name="Person" value="1" @(Model.Person=="y" ? "checked" : "")  class="form-check-input" style="padding:0;"> 
cs

radio 박스에서 checked는 위의 소스처럼

@(Model.Person=="y" ? "checked" : "")

형태로  ?연산자를 넣어서 표현식 처리하면 깔끔하게 처리된다.

 

그런데 이와 동일하게 Select 박스에서 selected 를 처리하면 Error 가 발생한다.

 

1
2
3
4
5
6
<select>
  <option value="Single"   @(marStat == "Single"   ? "selected" : "")>Single</option>
  <option value="Married"  @(marStat == "Married"  ? "selected" : "")>Married</option>
  <option value="Divorced" @(marStat == "Divorced" ? "selected" : "")>Divorced</option>
  <option value="Widowed"  @(marStat == "Widowed"  ? "selected" : "")>Widowed</option>
</select>
cs

The tag helper 'option' must not have C# in the element's attribute declaration area.

 

결국 아래와 같이 Select 박스의 selected="true" 형태로 처리해야 정상적으로 동작한다.

selected="@(ViewBag.Scate == "회원")"

1
2
3
4
5
6
7
<select name="Scate" onchange="scateChg()">
  <option value="">=전체=</option>
  <option value="회원" selected="@(ViewBag.Scate == "회원")">회원</option>
  <option value="수강신청" selected="@(ViewBag.Scate == "수강신청")">수강신청</option>
  <option value="결제/취소" selected="@(ViewBag.Scate == "결제/취소")">결제/취소</option>
  <option value="기타" selected="@(ViewBag.Scate == "기타")">기타</option>
</select>
cs

 

참고 : https://stackoverflow.com/questions/5688282/how-to-set-the-value-of-a-select-elements-selected-property