C# で linq と MVC モデルを使用して、SQL Server データベースから @HTML.dropdownlist または @HTML.dropdownlistfor を設定するにはどうすればよいですか? ViewData を使用する例をたくさん見てきましたが、モデルを使用したいと思います。私のハングアップは、データベースからビューで使用できるリストにデータを取得していると思います。
シンプルでありながら詳細な例が必要です。
ありがとう!
C# で linq と MVC モデルを使用して、SQL Server データベースから @HTML.dropdownlist または @HTML.dropdownlistfor を設定するにはどうすればよいですか? ViewData を使用する例をたくさん見てきましたが、モデルを使用したいと思います。私のハングアップは、データベースからビューで使用できるリストにデータを取得していると思います。
シンプルでありながら詳細な例が必要です。
ありがとう!
SQL の例はありませんが、MVC を使用したページへのレンダリングをお手伝いできます
コントローラ:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace TestPortal.Areas.JB.Controllers
{
public class ExampleController : Controller
{
//
// GET: /JB/Example/
public ActionResult Index()
{
Models.Example.ExampleIndex output = new Models.Example.ExampleIndex();
output.DropDownData.Add(new SelectListItem()
{
Text = "One",
Value = "1"
});
output.DropDownData.Add(new SelectListItem()
{
Text = "Two",
Value = "2"
});
return View(output);
}
}
}
ExampleIndex.cs : ビュー モデルを構築してデータをビューに渡すことは常に良いことに注意してください。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace TestPortal.Areas.JB.Models.Example
{
public class ExampleIndex
{
public ExampleIndex()
{
this.DropDownData = new List<SelectListItem>();
}
public List<SelectListItem> DropDownData
{
get;
set;
}
}
}
インデックス.cshtml:
@model TestPortal.Areas.JB.Models.Example.ExampleIndex
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
@Html.RFSSelect("DropDownId", Model.DropDownData)
パターンの俳優さん3名でサンプルを作ってみました
意見
<%= Html.DropDownList("YourControl", Model.YourSource)%>
コントローラ
IEnumerable<YourEntity> result =
from item in GetListSample()
select new YourEntity
{
Text = item.Name,
Value = item.Value
};
model.YourSource= result;
モデル
public class YourModel
{
public IEnumerable<YourEntity> YourSource{ get; set; }
}
注:ビューを作成するときは、モデルをビューに挿入する必要があります