0
私はMVCを初め、簡単なことをしようとしていますが、それは私を逃しています。私は製品名のリストを表示するために、部分ビューでDropDownListForを使用しています。その部分は正常に動作します。私が問題を抱えているのは、DropDownListForの初期値を「Select one」と表示することです。DropDownListのデフォルトのテキストを設定するMVC
は@Html.DropDownListFor(model => model.ProductId, new SelectList(ViewBag.ProductData, "ProductId", "Name"), "---Select one---", new { htmlAttributes = new { @id = "ProductName" } });
は、次のようにViewBagを設定し、コントローラは次のとおりです:
public ActionResult AddProduct(int quoteId, int quoteDetailId)
{
var items = db.Products.ToList();
ViewBag.ProductData = items;
ViewData["QuoteId"] = quoteId;
ViewData["QuoteDetailId"] = quoteDetailId;
return PartialView("EditQuoteDetail", new QuoteDetail { QuoteId = quoteId, QuoteDetailId = quoteDetailId, ProductId = 1, ProductName = " ", Amount = 1, ListPrice = 0, Discount = 0, Price = 0 });
}
私は「いずれかを選択」、DropDownListForのドロップダウン矢印を打つ一度に表示され、次のように私が働いているコードがありますリストの先頭しかし、DropDownListForが最初に表示されると、最初の製品名が「Select one」ではなくボックスに表示されます。これをどうすれば解決できますか?どんな助けでも大歓迎です。
あなたはおそらく、あなたの選択リストに有効な値は1〜 'ProductId'、の初期値を設定しています。これにより、モデルがビューにバインドされているときに一致するオプションが選択されます。 –
'ProductId = 1'を省略し、デフォルトを使用し、ヌルラベルオプション(" Select one ")が選択されるようにします。なぜあなたのモデルにすでに入っているときに 'ViewData'の値を設定するのですか? –
それはそれを修正しました。ありがとう!私はQuoteIdとQuoteDetailIdの値を設定する必要があると思ったのでViewDataを使用しました。 –