2012-01-12 20 views
0

著者のリストを表示するために私のビューにドロップダウンリストを使用しようとしています。私はこのドロップダウンに値を設定して、私の見解でコンテンツを見ることができます。私のフォームを送信するとき、私は私のコントローラで私のアクションをデバッグし、私のモデルを調べるとき、私のドロップダウンに関連するフィールドの値はnullです。ここフォームが送信されたときにドロップダウンリストの値がありません

が(私のビューを表示する前に)私のアクションコントローラである:ここ

public ActionResult Create() 
    { 
     IEnumerable<User> authors = m_AccountBusiness.GetAllUsers(); 

     PageCreateViewModel viewModel = new PageCreateViewModel 
     { 
      PageToCreate = new PageFullViewModel(), 
      Authors = authors.Select(x => new SelectListItem { Text = x.UserName, Value = x.UserID.ToString() }) 
     }; 

     return View(viewModel); 
    } 

は私のビュー(の一部)である:ここ

@model MyBlog.ViewModels.PageCreateViewModel 

<h3>Create</h3> 

@using (Html.BeginForm()) 
{ 

@Html.ValidationSummary(true) 
@Html.HiddenFor(model => model.PageToCreate.PageID) 

<div class="editor-label"> 
    @Html.LabelFor(model => model.PageToCreate.Title) 
</div> 
<div class="editor-field"> 
    @Html.TextBoxFor(model => model.PageToCreate.Title, new { @class = "titleValue" }) 
    @Html.ValidationMessageFor(model => model.PageToCreate.Title) 
</div> 

<div class="editor-label"> 
    @Html.LabelFor(model => model.PageToCreate.Author) 
</div> 
<div class="editor-field">  
    @Html.DropDownListFor(model => model.PageToCreate.Author, Model.Authors, "Please select...")  
</div> 

は私PageCreateViewModelある:

public class PageCreateViewModel 
{ 
    public PageFullViewModel PageToCreate { get; set; } 
    public IEnumerable<SelectListItem> Authors { get; set; } 
} 

ご存じですか?

ありがとうございました。

答えて

0

PageCreateViewModelに追加の文字列プロパティを追加する必要があります。このプロパティでは、選択した値を保存します。名前は「作者」と言います。編集:私はあなたのモデルでそれのプロパティを持っていることに気づいたが、このような試みを与える。

ドロップダウンリストの埋め込みは、あなたの視点ではこのように表示する必要があります。

@Html.DropDownList("Author", Model.Authors) 
+0

ご回答ありがとうございますが動作しません。私はまだ私のコントローラにドロップダウンの値が戻っていません。 – Bronzato

+0

@Bronzatoそして、あなたのモデルの他の値は返品時に正しく記入されますか? – JoJa

1

ありがとうございます。私は最終的に私のエラーを発見した:それは著者に正しいプロパティをバインドするには、AuthorIDでなければなりません!とにかくありがとうございました。

+0

LOL ...あなたは何を知っています、これは私の最初の考えでしたが、私はそれが当たり前のことのために取られたと思っていました。 –

関連する問題