2016-03-31 19 views
1

モデル(TBL_PROJECT)のデータを表示するビュー(インデックス)があります。それは次のようになり、表示ASP.NET MVC。ビューページにidの代わりにtestを表示するには?

@foreach (var item in Model) 
{ 
    <tr> 
     <td> 
      @Html.DisplayFor(m => item.PROJ_YEAR) 
     </td> 
     <td> 
      @Html.DisplayFor(m => item.PROJ_NAME) 
     </td> 
     <td> 
      @Html.DisplayFor(m => item.PROJ_STATUS) 
     </td> 
    </tr> 
} 


1998ペイント1
1998クリーニング1

は、私は別のモデル(TBL_STATUS)にあるテキスト、にあるように、ステータスを必要としています。
どうすればいいですか?
これはこれは、コントローラ

public ActionResult Index(int page = 1, string Query = null) 
{ 
    var projectList = db.TBL_PROJECTS.Include(x => x.TBL_STATUS).Where(x => x.PROJ_CAT == 1).ToList().OrderByDescending(x => x.ID); 

    if (!string.IsNullOrEmpty(Query)) 
    { 
     projectList = projectList 
      .Where(x => x.PROJ_NAME.ToLower().Contains(Query.ToLower())) 
      .ToList().OrderByDescending(x => x.ID); 
    } 
    return View(new PagedList.PagedList<TBL_PROJECT>(projectList, page, 10)); 
} 

アップデートでTBL_STATUSモデル

public class TBL_STATUS 
{ 
    public int ID { get; set; } 
    public string STATUS { get; set; } 
} 



です:私はそれを行う方法の方法を見つけました。ビューでそれを呼び出すとき

[Display(Name = "Current Status")] 
    public int PROJ_STATUS { get; set; } 

    [ForeignKey("PROJ_STATUS")] 
    public TBL_STATUS TBL_STATUS { get; set; } 


をして::モデル(TBL_PROJECT)で、私はこれを追加...


<td> 
    @Html.DisplayFor(m => item.TBL_STATUS.STATUS) 
</td> 

は今、私は別の問題を持っています。同じ問題ですが、私は区域(別のモデル(TBL_DISTRICT)を参照するTBL_PROJECTのint)を追加したいと思います。

public class TBL_DISTRICT 
{ 
    public int ID { get; set; } 
    public string DIST_NAME { get; set; } 
    public string DIST_OFFICE { get; set; } 
    public string DIST_CODE { get; set; } 
} 

は今、私のTBL_PROJECTモデルでは、私はこれらを追加します。

[Display(Name = "District")] 
    public int DISTRICT { get; set; } 

    [ForeignKey("DISTRICT")] 
    public TBL_DISTRICT TBL_DISTRICT { get; set; } 


とビューで:Html.DisplayFor @

(M => item.TBL_DISTRICT .DIST_NAME)

エラーはありませんが、何も返されません。これらのテーブルの間に制約を追加する必要がありますか(TBL_PROJECT & TBL_DISTRICT)?

+0

私は強くビューモデルの使用をお勧めします:http://wildermuth.com/2015/7/22/Mapping_Between_Entities_and_View_Modelsを – freshbm

答えて

0

答えを見つけました。私はこの最初の行をコントローラーに入れました。

var projectList = db.TBL_PROJECTS.Include(x => x.TBL_STATUS).Include(x => x.TBL_DISTRICT).Where(x => x.PROJ_CAT == 1).ToList().OrderByDescending(x => x.ID); 

私はちょうど別含める(X => x.TableName)を追加

0

TBL_PROJECTモデルに次の行を追加します。その後

public class TBL_PROJECT 
{ 
//Code you have 
public virtual TBL_STATUS TBL { get; set; } 
} 

@foreach (var item in Model) 
     { 
       <tr> 
        <td> 
         @Html.DisplayFor(m => item.PROJ_YEAR.STATUS) 
        </td> 
        <td> 
         @Html.DisplayFor(m => item.PROJ_NAME) 
        </td> 
        <td> 
         @Html.DisplayFor(m => item.TBL.STATUS) 
        </td> 
       </tr> 
      } 
-1

使用@Html.Display(item.PROJ_STATUS.ToString())

関連する問題