Dapperを使用してMVCのドロップダウンリストコントロールをバインドするために、&を入力しようとしています。オンラインで良い例を見つけるのに問題があります。私は静的に定義されたドロップダウンをデータベース(「男性」または「女性」のような)を更新するためにバインドする方法の例をたくさん見つけることができ、それを動作させることができます。また、データベースからドロップダウンする例もたくさんありますが、それらを連動させることはできません。RazorとMVCを使用してドロップダウンリストを取り込む方法は?
私のProjectManifest/Createフォームに、現在のプロジェクトでドロップダウンが設定されていればいいだけです。
私はこの質問をよくすることを望みましたが、私が間違っていることは分かりません。私は自分のコードでさまざまなチュートリアルや質問をStackOverflowで数十回試してみました。私がVisual Studioから受け取ったエラーはあまり役に立たず、通常NullReferenceの例外に過ぎず、何がnullであるか分からないHTMLヘルパ関数呼び出しには非常に多くの変数があります。
- Populate a Dropdown List in MVC View
- User HTML Helper to populate a DropDown list
- Value cannot be null. Parameter name: entitySet
- https://www.youtube.com/watch?v=k9CJmLbnFko
- http://dotnetmentors.com/mvc/how-to-bind-dropdownlist-in-asp-net-mvc-application.aspx
- Binding Data To DropDownList MVC Razor :
- Asp.Net MVC with Drop Down List, and SelectListItem Assistance
これらは私が私の問題を理解するために使用しようとしました記事の一部です
私はこの問題は私のインデックスファイルに、私はラムダ式やどのような期待はHTMLヘルパー「DropDownListFor」または「DropDownListコントロール」
の引数にあることがあるを理解していないと思いIndexビュー
@using (Html.BeginForm("Index", "ProjectManifests", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
....
@Html.LabelFor(model => model.ManifestID)
@Html.EditorFor(model => model.ManifestID)
@Html.ValidationMessageFor(model => model.ManifestID)
@Html.DropDownListFor(model => model.ProjectID, Model.Projects)
....
<input type="submit" value="Create" class="btn btn-default" />
}
コントローラ
public class ProjectManifestsController : Controller
{
[HttpGet]
public ActionResult Index()
{
Models.ProjectManifestModel model = new Models.ProjectManifestModel();
DatabaseHelper.ConnectionString = ConfigurationManager.ConnectionStrings["MTConnectionString"].ConnectionString;
ProjectRepository pr = new ProjectRepository();
List<SelectListItem> projects = new List<SelectListItem>();
foreach (Project p in pr.GetProjects())
{
projects.Add(new SelectListItem { Value = p.ProjectID.ToString(), Text = p.ProjectName });
}
model.Projects = projects;
ViewBag.Projects = projects;
return View();
}
}
のViewModel
public class ProjectManifestModel
{
[Key]
public int ManifestID { get; set; }
public int ProjectID { get; set; }
....
public HttpPostedFileBase Attachment { get; set; }
public IEnumerable<SelectListItem> Projects { get; set; }
}
このコードの状態が異なるエラーが発生し、私の謝罪:
Compiler Error Message: CS1503: Argument 3: cannot convert from 'System.Collections.Generic.IEnumerable<Poscarp.TabLibrary.Project>' to 'System.Collections.Generic.IEnumerable<System.Web.Mvc.SelectListItem>'
Source Error:
Line 29: @Html.DropDownListFor(model => model.ProjectID, Model.Projects)
NullReferenceExceptionsは非常に参考にすることができ役に立てば幸い
を使用しましたか? nullは何ですか? – GregHあなたが表示したコードは、表示されているエラーを生成しません - タイプ 'System.Int32'のキー 'ProjectID'を持つ_The ViewDataアイテムを生成しますが、 'IEnumerable' _ –
'Projects'プロパティが' IEnumerable '(' IEnumerable 'ではなく)の場合にのみ、表示されたエラーが生成されます。 –