私はあなたが私を助けてくれることを願っています。私はdropdownlist.Thereにいくつかの問題を抱えています。私の選択リストは、私がGroupByを使用してこのように避けていますが、2つのActionResult Createクラスは、 parametres.Andそれは動作しません。ここ は私のコントローラのコードです:ドロップダウンリスト内のユニークなアイテム
public ActionResult Create(Flight flight)
{
var departures = db.Flights.Where(m => m.Departure == flight.Departure)
.OrderBy(m => m.Departure)
.Select(i => i.Departure)
.Distinct();
ViewBag.Departure = new SelectList(departures);
ViewBag.CompanyId = new SelectList(db.Companies, "CompanyId", "Name");
ViewBag.TransportId = new SelectList(db.Transport, "TransportId", "Name");
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "Id,FlightId,Departure,Destination,Day,DepartureTime,ArrivalTime,Seats,Cost,TransportId,CompanyId")] Flight flight)
{
try
{
if (ModelState.IsValid)
{
db.Flights.Add(flight);
db.SaveChanges();
return RedirectToAction("Index");
}
}
catch (DataException /* dex */)
{
//Log the error (uncomment dex variable name and add a line here to write a log.
ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists see your system administrator.");
}
var departures = db.Flights.Where(m => m.Departure == flight.Departure)
.OrderBy(m => m.Departure)
.Select(i => i.Departure)
.Distinct();
ViewBag.Departure = new SelectList(departures);
ViewBag.CompanyId = new SelectList(db.Companies, "CompanyId", "Name", flight.CompanyId);
ViewBag.TransportId = new SelectList(db.Transport, "TransportId", "Name", flight.TransportId);
return View(flight);
}
あなたは私が私のドロップダウンリストで唯一のユニークなアイテムを持っていると思います見ての通り。
@Html.DropDownList("Departure", null, htmlAttributes: new { @class = "form-control" })
私はこの
public ActionResult Create(Flight flight)
{
var departures = db.Flights.Where(m => m.Departure == flight.Departure)
.OrderBy(m => m.Departure)
.Select(i => i.Departure)
.Distinct();
ViewBag.Departure = new SelectList(departures);
ViewBag.CompanyId = new SelectList(db.Companies, "CompanyId", "Name");
ViewBag.TransportId = new SelectList(db.Transport, "TransportId", "Name");
return View();
}
をすれば、私は同じパラメータを使用してエラーが発生しています。
この方法が明らかに間違っている場合。
public ActionResult Create()
{
ViewBag.CompanyId = new SelectList(db.Companies, "CompanyId", "Name");
ViewBag.TransportId = new SelectList(db.Transport, "TransportId", "Name");
return View();
}
「System.InvalidOperationException」種類の例外がSystem.Web.Mvc.dllで発生したが、ユーザーコードで処理されなかった
追加情報:「IEnumerableを」タイプの一切のViewData項目が存在しないことキー「出発」を持っています。
GETアクションでそれをどのようにコーディングする必要がありますか?GETアクションで私のViewbagを設定する方法は?
あなたの質問は不明です!最初の 'Create'で' Distinct'を適用するのが難しくなるのはなぜですか? – techspider
なぜ 'ViewBag.Departure'に2つの異なるデータセットがあるのですか?ビューに戻る前に、両方のアクションメソッドでITが同じである必要があります。 – Shyju
また、非値型(Ex:複雑な型のプロパティで、おそらく 'EqualsTo'を実装したいと思っています)で' Distinct'を行うことを忘れないでください。コメントにコードを追加しないでください。元の質問に追加** – Shyju