2017-10-24 3 views
0

Visual Studio를 사용하여 데이터베이스에서 컨트롤러와 뷰를 자동으로 생성했습니다. 데이터베이스에는 dbo.Items 테이블이 있는데, FOREIGN KEY (CategoryID) REFERENCES Categories(Id)@ Html.DropDownList() 허용 방법 NULL

생성 된 항목/생성보기에는이 항목이 있으므로 사용자는 새 항목을 추가 할 때 드롭 다운 목록에서 01 범주를 선택해야합니다. null 값 허용 :

<div class="form-group"> 
     @Html.LabelFor(model => model.CategoryID, "CategoryID", htmlAttributes: new { @class = "control-label col-md-2" }) 
     <div class="col-md-10"> 
      @Html.DropDownList("CategoryID", null, htmlAttributes: new { @class = "form-control" }) 
      @Html.ValidationMessageFor(model => model.CategoryID, "", new { @class = "text-danger" }) 
     </div> 
    </div> 

Null 옵션은 어떻게 사용할 수 있습니까?

답변

0

Html.DropDownList()은 HTML 요소를 렌더링하기위한 HTML 마크 업을 생성하는 html 도우미 메서드입니다. 자체적으로 "허용/금지"하지 않습니다.

MVC 모델 유효성 검사 프레임 워크는 사용자가보기 모델 속성과 이에 정의 된 데이터 주석을 기반으로 양식을 제출할 때 서버 측에서 모델 유효성 검사를 수행합니다. 도우미 메서드는 jQuery 유효성 검사 플러그인이 클라이언트 측 유효성 검사를 수행하는 데 사용할 수있는 필요한 데이터 특성도 생성합니다.

SELECT 요소에서 옵션을 선택하지 않으려면 CategoryID 속성을 nullable int로 변경하십시오. 뷰 모델을 가지고 있다면 거기에 침투 할 수 있습니다.

public class YourViewmodel 
{ 
    public int? CategoryID { set;get;} 
} 

당신은 CategoryId 컬럼에 널 (NULL) 값을 저장하기 위해 당신의 DB 스키마를 업데이트해야합니다. 데이터베이스의 첫 번째 방법을 사용하는 경우 db 스키마를 변경 (열을 nullable로 변경) 한 다음 엔터티 클래스를 다시 생성 할 수 있습니다.

는 또한 당신이 당신의 GET 조치 방법 설정 SelectListItem의 목록을 ViewBag.CountryCode을 가정하고 DropDownListFor 도우미

@Html.DropDownListFor(x=>x.CategoryID,ViewBag.CountryCode as List<SelectListItem>, 
             "select one", new { @class = "form-control" }) 

이다 사용하는 것이 좋습니다.

0

당신은 ...

@Html.DropDownList("CategoryID", null, "select option", new { @class = "form-control" }) 

과를 보여 처음 "옵션을 선택"오버로드 버전을 fallowing 사용할 수있는 카테고리 ID 드롭 다운 메뉴로 추가 옵션을 사용하면이 후 처음으로 "선택 옵션"을 추가하고 휴식을해야 할 때마다 그 ...