2017-12-08 3 views
-1

내가 편집 버튼을 클릭하면. 드롭 다운 값이 나오지 않고 ViewBag.DomainID 값이 있지만 표시되지 않습니다.편집 버튼을 클릭하면 드롭 다운 값이 mvc를 사용하여 표시되지 않습니까?

[Authorize] 
     [MyExceptionHandler] 
     public ActionResult EditModules(int id) 
     { 
      EditDomain_Bind(); 
      userType type = new userType(); 
      var ModID = type.GetEditRoleModulesViews(id).Find(Emp => Emp.ModuleID == id); 
      int domainID = ModID.DomainID; 
      AccountContext db = new AccountContext(); 
      string selected = (from sub in db.domain 
           where sub.DomainID == domainID 
           select sub.DomainName).First(); 
      ViewBag.DomainID = new SelectList(db.domain, "DomainID", "DomainName", selected); 

      return View(ModID); 
     } 

Cs.HTML :

<div class="col-lg-4"> 
          <fieldset class="form-group"> 
           <label class="form-label" for="exampleInput">Domain Name</label> 
           @Html.DropDownList("DomainID") 
           @Html.ValidationMessageFor(model => Model.DomainID, null, new { @style = "color: red" }) 
          </fieldset> 
         </div> 

모델 : 그것은 The specified cast from a materialized 'System.Int64' type to the 'System.Int32' type is not valid.

컨트롤러를 보여줍니다

public DbSet<Domain> domain { get; set; } 
    public class Domain 
    { 
     [Key] 
     public int DomainID { get; set; }  
     public string DomainName { get; set; } 

    } 
+1

데이터베이스의 데이터 유형이 모델과 동일합니까? –

+0

내 그림을 확인 @PranayRana –

+0

@mjwills https://ibb.co/kpp35G –

답변

1

문제는 당신이로 DomainID를 정의한 것입니다 :

C#에서는

이지만, bigint (즉, long)를 데이터베이스에 저장합니다.

public long DomainID { get; set; } 

뿐만 아니라 다른 모든 intDomainID 참조를 변경 : 따라서 대신 사용합니다. 예 :

long domainID = ModID.DomainID; 
+1

감사합니다. –

+0

하나의 도움말 드롭 다운이 ID 값만 가져야합니다. ..i 드롭 다운 목록에서 DomainName을 가져오고 싶습니다. –

+0

@IvinRaj에 대한 새로운 질문을 제안 할 것입니다. – mjwills

관련 문제