2014-09-16 2 views
-1

엔티티 프레임 워크 6.1.0을 사용하여 mvc 5로 asp.net에 프로젝트를 구축 중입니다. 모델에 숫자 형식의 값이 포함되어 있고 모델에 숫자 값, 도메인 및 해당 값의 설명 (의미)이 포함되어 있습니다.다른 모델의 Asp MVC 5 드롭 다운 목록

모델에서 해당 값에 대한 설명이 포함 된 드롭 다운 목록을 만들려면 어떻게해야합니까?

나는 이것을 SQL 쿼리에 표시하고 필요한 경우 모든 코드를 게시 할 수 있습니다.

select 
value, 
description 
from 
table t1 
inner join table2 t2 on t2.number_value = t1.value 
where 
t1.domain = 'COLORS'; 

이 쿼리는 예를 들어 COLORS 도메인의 모든 설명을 제공합니다. 이런 식으로 뭔가 :

Value Description Domain 
1  Yellow  COLORS 
2  Blue   COLORS 
3  Red   COLORS 

내가 이런 1 차의 기록이하고 싶은 말은하자 : 나는 모든 색상 값을 드롭 다운 목록을 보여주고 싶은 내 모델 편집보기에서

name model year color 
Opel Astra 2014 2 

을하지만 선택한 것을 저장하고 싶을뿐입니다.

나중에 내가 선택한 옵션으로 드롭 다운 목록을 다시 표시하려고합니다.

제발 도와 주실 수 있습니까?

모델 :

public partial class korisnik_detalji 
    { 
     public int id { get; set; } 
     public int korisnik_id { get; set; } 
     public string ime { get; set; } 
     public string prezime { get; set; } 
     public string adresa { get; set; } 
     public string grad { get; set; } 
     public string drzava { get; set; } 
     public Nullable<int> mj_tezine { get; set; } 
     public Nullable<int> mj_tekucine { get; set; } 
     public string slika { get; set; } 

     public virtual korisnik korisnik { get; set; } 
    } 
//This is model with values and descriptions 

    public partial class mapiranja 
    { 
     public int vrijednost { get; set; } 
     public string opis { get; set; } 
     public string domena { get; set; } 
     public int id { get; set; } 
    } 

보기 :

@model eVinogradarstvo.Models.korisnik_detalji 
@using Microsoft.AspNet.Identity 
@{ 
    ViewBag.Title = "Detalji"; 
} 
<div id="main_middle"> 
    <div id="detalji"> 
@if (Request.IsAuthenticated) 
{ 
     <h2>@Html.DisplayFor(model => model.korisnik.UserName)</h2> 
     <div class="profil"> 
      <div class="slika"> 
      @if (Model.slika != null) 
      { 
       <img src="@Url.Content(Model.slika)" /> 
      } 
      </div> 
      <div> 
       <ul> 
        <li> 
         @Html.ActionLink("Promijeni sliku", null) 
        </li> 
        <li> 
         @Html.ActionLink("Promijeni lozinku", "Manage", "Account", routeValues: null, htmlAttributes: new { title = "Manage" }) 
        </li> 
        <li> 
         @Html.ActionLink("Promijeni podatke", "Edit", new { id = Model.id }) 
        </li> 
       </ul> 
      </div> 
     </div> 
     <div class="podaci"> 
      <ul> 
       <li> 
        <label>Ime</label> 
        @if (Model.ime != null) 
        { 
        @Html.DisplayFor(model => model.ime) 
        } 
       </li> 
       <li> 
        <label>Prezime</label> 
       @if (Model.prezime != null) 
       { 
        @Html.DisplayFor(model => model.prezime) 
       } 

       </li> 
       <li> 
        <label>Adresa</label> 
       @if (Model.adresa != null) 
       { 
        @Html.DisplayFor(model => model.adresa) 
       } 
       </li> 
       <li> 
        <label>Grad</label> 
       @if (Model.grad != null) 
       { 
        @Html.DisplayFor(model => model.grad) 
       } 
       </li> 
       <li> 
        <label>Država</label> 
       @if (Model.drzava != null) 
       { 
        @Html.DisplayFor(model => model.drzava) 
       } 
       </li> 
       <li> 
        <label>Mjerna jedinica težine</label> 
       @if (Model.mj_tezine != null) 
       { 
        @Html.DisplayFor(model => model.mj_tezine) 
       } 
       </li> 
       <li> 
        <label>Mjerna jedinica tekućine</label> 
       @if (Model.mj_tekucine != null) 
       { 
        @Html.DisplayFor(model => model.mj_tekucine) 
       } 
       </li> 
      </ul> 
     </div> 
}else 
{ 
     <p style="font-size:16px">Molimo da se @Html.ActionLink("prijavite", "Login", "Account", routeValues: null, htmlAttributes: new { id = "loginLink" }) ili @Html.ActionLink("registrirate", "Register", "Account", routeValues: null, htmlAttributes: new { id = "registerLink" })</p> 
} 
    </div> 
</div> 

은 현재 내가 mj_tezine 및 mj_tekucine의 숫자 값을 표시하고,하지만 난이 값의 설명을 싶어. 설명은 mapiranja.opis 모델에 있습니다. 번호 값이 mapiranja.vrijednost에

+1

에 저장하면 도움이 될 수 있습니다. 그러나 두 모델을 하나의 결합 된보기 모델에서보기로 보내 보았습니까? – mmeasor

+0

2 가지 모델과 1 가지보기 만 있기 때문에 코드를 게시하지 않았습니다. 여기에 지금은 – Veki

답변

0

제일 먼저하는 뷰 모델

보기 모델을 만들

public class DetaljiViewModel { 
    public korisnik_detalji kd { get; set; } 
    public mapiranja m { get; set; } 
    public IEnumerable<SelectListItem> DropDownItems { get; set; } 
} 

두 번째는 (내가 아주 짧은보기를주기 위하여려고하고있는 뷰 모델을 사용하여보기 변경 방법을 보여주기 위해

[PropertyToSaveTheSelectedValue]를 (를) 실제로 예상하는 모든 속성으로 변경하십시오. e 선택한 값을

+0

네, 해결책 주셔서 감사합니다, 나는 그것을 시도하고 이것이 트릭을했는지 알려주지. – Veki

+0

그것은 몇 가지 변화와 함께 일하고 있습니다, 위대한 분, 대단히 감사합니다! – Veki

관련 문제