2009-05-06 11 views
3

私は最初のMVCアプリケーションを構築しています。これは 'NerdDinner'チュートリアルをたどっています。しかし、同じ方法でSelectListからドロップダウンリストを作成すると、私は問題に遭遇しています。mvc - 編集ビュー内にドロップダウンリストが正しく表示されない

何らかの理由で、データがデータベースに設定されていて、[詳細]ビューに正しい値が表示されていても、[編集]ビューを表示すると、ドロップダウンリストに正しい選択が表示されません。すべての人がリストの最初の値を思いついています。

私はNerdDinnerのコードを少しずつ使ってきましたが、私の人生の間は違いはありませんが、アプリケーションは編集時に現在の値でドロップダウンを正しく表示します。

ここからどこへ行くかについてのご意見はありますか?誰かが何か特定のことを求めたら、コードスニペットを投稿できます。

更新:フィールドセット内

 <p> 
      <label for="Parking">Parking Arrangement:</label> 
      <%= Html.DropDownList("Parking", Model.Parking)%> 
      <%= Html.ValidationMessage("Parking", "*") %> 
     </p> 

編集アクション:

// 
    // GET: /Buyer/Edit/2 
    public ActionResult Edit(int id) 
    { 
     Buyer_Profile buyer_profile = buyerRepository.GetBuyerProfileByID(id); 

     if (buyer_profile == null) 
      return View("NotFound"); 
     else if (!buyer_profile.IsOwnedBy(User.Identity.Name, id)) 
      return RedirectToAction("Index", "Home"); 
     else 
      return View(new BuyerFormViewModel(buyer_profile)); 
    } 

彼らはNerdDinner例のためにそれを構築するのと同じ方法で、私は 'を作成... FormViewModel ':

public class BuyerFormViewModel 
{ 
    // Properties 
    public Buyer_Profile Buyer_Profile { get; private set; } 
    public SelectList Parking { get; private set; } 

    // Constructor 
    public BuyerFormViewModel(Buyer_Profile buyer_profile) 
    { 
     Buyer_Profile = buyer_profile; 
     Parking = new SelectList(BuyerProfileOptions.Parking, Buyer_Profile.Parking); 
    } 
} 

、値がすでに詳細に示されているとき、「編集」をクリックして生成されたHTMLを表示およびD/Bに保存されている:

<p> 
    <label for="Parking">Parking Arrangement:</label> 
    <select id="Parking" name="Parking"><option>No Preference</option> 
    <option>On Street</option> 
    <option>Assigned Street</option> 
    <option>Open Garage</option> 
    <option>Covered Garage</option> 
    </select>     
</p> 

同じ形式のテキストフィールドには、それらの値が正しく読み込まれています。それはないドロップダウンだけです!

ご注意いただきありがとうございます。

+0

私はデバッガを段階的に使いこなしており、ページのレンダリングが終わる頃には、それが出てくるように見えます。しかし...それはしません。 – user101306

+1

HtmlHelperとEditアクションのスニペットを投稿できますか? また、HTML出力もあります。 –

答えて

2

hh。 htmlhelperはTOOでも良いようです。私はモデルへの参照を削除し、すべてが動作します!すなわち

<%= Html.DropDownList("Parking", Model.Parking)%> 

<%= Html.DropDownList("Parking")%> 

になり、私たちは黄金です。 ViewDataには「Parking」という名前が含まれていますか?私はモデル内でそれを参照しているので、他の値を縮めていますか...何か...?

+0

ドロップダウンリストの2番目のパラメータが選択された値です。したがって、モデルをビューモデルにするために、おそらくモデルを作成することによって、ビューを強く入力したことになります。Parkingプロパティを実際に選択するのは、実際には選択リストオブジェクトです。同じように動作するモデル.Buyer_Profile.Parkingを行う場合と同じです。 – Pricey

1

人のためのクイックヒント - ドロップダウンリストが必要なときに、モデルプロパティの[タイトル]に名前を付けないでください。フレームワークはビュータイトルと混同され、うまくいかないでしょう - 私は完全な午後にこれで私の髪を裂くのに費やしました。何が起こっていたかを理解するためにそれを眠る必要があった。

関連する問題