0

次の2つのクラスがあります

public class ODCTE_Major
{
    public int    ODCTE_MajorId { get; set; }
    public string OfficialMajorName      { get; set; }
    public string MajorCode { get; set; }

    ... More unrelated code ....
}

public class CareerMajor
{
    ...lots of unrealted code to this question left out

    public int ODCTE_MajorId { get; set; }
    public virtual ODCTE_Major ODCTE_Major { get; set; }


}

CRUD メソッドを使用してコントローラーを追加し、create.cshtml にこの行があります。

<div class="editor-field">
    @Html.DropDownList("ODCTE_MajorId", String.Empty)
    @Html.ValidationMessageFor(model => model.ODCTE_MajorId)
</div>

選択リストには、ODCTE_Major からの OfficialMajorName が入力されます。MajorCode または MajorCode - OfficialMajorName のような値を入力する選択リストが必要です。

誰かがこれがどのように行われるかについて支援を提供できますか?

ありがとう。

4

3 に答える 3

1

これを ODCTE_Major に追加します。

public string MajorDisplayName
{
    get { return string.Format("{0} - {1}", MajorCode, OfficialMajorName); }
}

これは、メニューで使用する形式で表示テキストを作成するために使用される読み取り専用のプロパティです。

次に CareerMajor に以下を追加します。

public IEnumerable<ODCTE_Major> Majors{ set; get; } // Thank you Shyju!

これにより、ビューモデルに、メニューに必要なメジャーのリストをビューに渡す場所が与えられます。

次に、アクション メソッドで CareerMajor ビュー モデルを作成してビューに送信するときに、メニューに表示する ODCTE_Major エンティティを新しい IEnumberable に入力します。

表示ページで:

@Html.DropDownListFor(m => m.ODCTE_MajorId, new SelectList(Model.Majors, "ODCTE_MajorId", "MajorDisplayName", Model.ODCTE_MajorId), "Select One")

これにより、ドロップダウンに入力する SelectList が作成されます。SelectList コンストラクターは、メニューの SelectListItem の値として ODCTE_MajorId を使用し、実際にメニューに表示するテキストとして MajorDisplayName を使用するように指示しています。選択された値がある場合はそれを設定し、「Select One」というテキストを含む null 項目をメニューの上部に追加します。null テキストが必要ない場合は、最後の引数を自由に削除してください。

于 2012-07-26T20:04:42.497 に答える
0

コントローラのアクションでは:

ViewBag.ODCTE_MajorId = new SelectList(availableMajors, "ODCTE_MajorId", "MajorCode");

* 2番目と3番目のパラメーターは、それぞれ値フィールドとテキストフィールドの名前です。

次に、あなたの見解では:

 @Html.DropDownList("ODCTE_MajorId", String.Empty)

ここavailableMajorsで、はリストしたい専攻を含むIEnumerableです。

于 2012-07-26T19:57:04.467 に答える
0

ViewModel に、Collection使用可能なすべてのメジャーを表すプロパティを保持させます (ドロップダウンを設定するため)。

public class CareerMajor
{  
  //other proiperties
   public int ODCTE_MajorId { get; set; }
   public IEnumerable<ODCTE_Major> Majors{ set; get; }
} 

そして、あなたのGETアクションで、それを入力して、強く型付けされたビューに送信します

pubilc ACtionResult Create()
{
  var viewModel=new CareerMajor();
  viewModel.Majors=db.GetllAllMajors();  // getting a list of ODCTE_Major objects
  return View(viewModel);
}

ビューでは、DropDownListForHTML ヘルパー メソッドを使用します。

@model CareerMajor
@Html.BeginForm())
{
   @Html.DropDownListFor(m=>m.ODCTE_MajorId, 
        new SelectList(Model.Majors,"ODCTE_MajorId ","MajorCode"),"select one..")
  //other elements
}
于 2012-07-26T19:53:36.980 に答える