0
私は同様の投稿を見ましたが、私の場合は何もしませんでした。 私はうまく読み込むフォームを持っており、その中のすべてのカテゴリを持つカテゴリドロップダウンが表示されます。 問題はフォームを投稿しようとするときです。ドロップダウンリストを含むMVCフォームを投稿しようとしたときにエラーが発生しました
私はこのエラーを取得する:キー「カテゴリー」があり
のViewData項目はタイプ「可能System.String」があるが、型「のIEnumerable」でなければなりません。 Html.DropDownList @
( "カテゴリー"、Model.Categories)< - ここでは赤色
が私の見解である。ここでは
@using (Html.BeginForm("Save", "Album", FormMethod.Post, new { id = "frmNewAlbum" }))
{
@Html.DropDownList("Category", Model.Categories)
}
は私のモデルである:
public class AlbumModel
{
public string Title { get; set; }
public string Category { get; set; }
public List<SelectListItem> Categories { get; set; } <-- holds categories
}
これはページを表示するコントローラの操作です:
ポストを受け取る[HttpGet]
public ActionResult Save()
{
var model = new AlbumModel();
var categories = new List<SelectListItem>() { new SelectListItem() { Text = "-- pick --" } };
categories.AddRange(svc.GetAll().Select(x => new SelectListItem() { Text = x.Name, Value = x.Name }));
model.Categories = categories;
return View(model);
}
処置:POSTアクションで
[HttpPost]
public ActionResult Save(AlbumModel model)
{
var album = new AlbumDoc()
{
Category = model.Category,
Title = model.Title,
};
svc.SaveAlbum(album);
return View(model);
}
まず一つは動作しません、それは言う:値をNullにすることはできません。 パラメータ名:items。もう1つは古いエラーです。 – kheya
Darrin、これは完全なポストではないajax投稿であるはずです。なぜ投稿をクリックした後にページがリフレッシュされますか? – kheya
@Projapati - Ajax.BeginFormを使用していないためですか? –