1

私はMVCを実行しており、ドロップダウンリストにルックアップ値があります。UpdateModelを呼び出す場合、ルックアップが更新される前の値のみを呼び出し、その後は何も呼び出しません。エラーは発生しません。

コントローラで次のコードを編集、作成、使用できます。

ViewData["SiteMaintenanceId"] = from m in this._siteRepository.FindAllSiteMaintenances().ToList()

select new SelectListItem
{
   Text = m.Maintenance,
   Value = m.SiteMaintenanceId.ToString(),
   Selected = (m.SiteMaintenanceId == site.SiteMaintenanceId)
};


return View(new SiteFormViewModel(site,               
this._siteRepository.FindAllSiteOperators()));

私の見解では、次のようになっています。

 <%= Html.DropDownList("SiteOperatorId")%>

これは問題なくバインドされているようで、ドロップダウンの編集で選択した値を取得して作品を作成できます。

MVCを実行するのはこれが初めてなので、助けていただければ幸いです。

4

1 に答える 1

0

このクエリへの応答はほとんどないようですので、試してみます。

テキストから問題/要件を理解するのは少し難しいですが、あなたが正しく理解している場合、ドロップダウンから値を取り戻そうとしていますか? そうでない場合はお知らせください。これを編集して、より適切に適合させます。

ただし、私が正しいと仮定します。

ドロップダウン リストをセットアップするには、少し異なることを行います。重要ではないと思いますが、とにかく共有したいと思いました。

私はこのような FormViewModel を持っています。

public class CalendarEventFormViewModel
{
    public CalendarItem Event { get; set; }
    public SelectList States;
}

私のActionResultには、州を提供するために次のものがあります。

fvm.States = new SelectList(Enumerations.EnumToList<Enumerations.AustralianStates>(), "Value", "Key", fvm.Event.state);

次に、それをビューに戻すだけです。

ビューには次のようなドロップダウンがあります。

<% using (Html.BeginForm()) { %>
  <%=Html.DropDownList("selectedState", Model.States, new { @class="stateSelector" })%>
<%} %>

これで州のリストができました。ポストバックで、選択した状態を取得したい。そう...

[AcceptVerbs(HttpVerbs.Post), ValidateInput(false), Authorize]
public ActionResult Add(FormCollection collection)
{
    CalendarItem fvm = new CalendarItem();
    UpdateModel(fvm);
}

これでうまくいき、CalendarItem オブジェクト内のすべてのフィールドが入力されました。

ただし、値が得られない場合は、試してみてください。

String state = collection["selectedState"];

繰り返しますが、これがあなたの質問に答えているかどうかはわかりません。そうでない場合は、この回答にコメントを添付してください。それに応じて調整します.

于 2009-08-23T07:03:35.087 に答える