asp.net mvc3ポストバック後にドロップダウンリストを選択したままリストを保持する方法。ポストバック後にドロップダウンリストの選択値を保持する方法
答えて
選択したアイテムが投稿の一部であると仮定すると、コントローラーは現在そのアイテムが何であるか知っています。どの項目を選択すべきかを示すViewDataディクショナリ内のエントリを持つだけです(取得時にはnull、選択されていない場合はnull)。ビューで値を確認し、ヌルでない場合は適切なオプションを選択します。
MVCはViewStateを使用しません。つまり、値の永続性を自分で管理する必要があります。通常、これはモデルを通じて行われます。あなたが( - 検証に失敗した、おそらく間違った)データとバックビューにモデルを渡すとき、
今public class MyController : Controller
{
public ActionResult Something()
{
return View(new MyViewModel());
}
public ActionResult Something(MyViewModel model)
{
if (!ModelState.IsValid)
return View(model);
return RedirectToAction("Index");
}
}
:
public class MyViewModel { }
そして、あなたのコントローラ:だから、あなたはビューモデル、例えばを持っていることを考えるとあなたはDropDownListFor
メソッドを使用するときに、ちょうど値を渡す:
@Model.DropDownListFor(m => m.Whatever, new SelectList(...))
...など
MVCのモデルバインディングは、モデルへのデータの読み込みを処理します。同じ値を再度表示するには、ビューに戻す必要があります。
[HttpPost]
public ActionResult Create(FormCollection collection)
{ if (TryUpdateModel(yourmodel))
{ //your logic
return RedirectToAction("Index");
}
int selectedvalue = Convert.ToInt32(collection["selectedValue"]);
ViewData["dropdownlist"] = new SelectList(getAllEvents.ToList(), "EventID", "Name", selectedvalue);// your dropdownlist
return View();
}
とビューで:
はこのような何かであっても容易に
<%: Html.DropDownListFor(model => model.ProductID, (SelectList)ViewData["dropdownlist"])%>
を、あなたのActionResultの入力パラメータであなたのドロップダウンの名前(複数可)を含めることができます。あなたのドロップダウンはフォームタグでなければなりません。 ActionResultがポストされると、ASP.Netはクエリーストリング、フォーム値、およびCookieを反復します。ドロップダウン名を含める限り、選択した値は保持されます。
ここでは、ActionResultに投稿する3つのドロップダウンがあるフォームがあります。ドロップダウン名は、大文字と小文字は区別されません:ReportName、Year、およびMonthです。
//MAKE SURE TO ACCEPT THE VALUES FOR REPORTNAME, YEAR, AND MONTH SO THAT THEY PERSIST IN THE DROPDOWNS EVEN AFTER POST!!!!
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult ReportSelection(string reportName, string year, string month)
{
PopulateFilterDrowdowns();
return View("NameOfMyView");
}
HttpRequestBaseオブジェクトを使用してください。ビューで が、これは動作するはずです:
@Html.DropDownList("mydropdown", ViewBag.Itens as IEnumerable<SelectListItem>, new { value = Request["mydropdown"] })
あなたは、コントローラのアクションメソッド内のリストデータソースのドロップダウンを構築している場合は、あなたが選択した値を送信することができ、それ
コントローラー:
public ActionResult Index(int serviceid=0)
{
// build the drop down list data source
List<Service> services = db.Service.ToList();
services.Insert(0, new Service() { ServiceID = 0, ServiceName = "All" });
// serviceid is the selected value you want to maintain
ViewBag.ServicesList = new SelectList(services, "ServiceID", "ServiceName",serviceid);
if (serviceid == 0)
{
//do something
}
else
{
// do another thing
}
return View();
}
表示:
//ServiceList is coming from ViewBag
@Html.DropDownList("ServicesList", null, htmlAttributes: new { @class = "form-control" })
- 1. Cakephp - 提出後にドロップダウンリストの選択値を保持する
- 2. ポストバック後にドロップダウンリストの選択値がリセットされます
- 3. ASP.NETドロップダウンリストの選択値を保持JavaScript
- 4. ポストバック後のmvc 5のドロップダウンリストのMantain選択値
- 5. asp.netのポストバック後にチェックボックスの値を保持する方法は?
- 6. ポストバック後にViewBag値を保持する
- 7. ポストバック後に変数値を保持する方法
- 8. ポストバック間でddl値と選択値を保持します
- 9. ドロップダウンリストで最後のインデックス値を選択する方法は?
- 10. ポストバックで選択したドロップダウンオプションを保持
- 11. ページのポストバック後にHidden Fieldの値を保持する方法は?
- 12. htmlのドロップダウンリストから選択した値を保持
- 13. データベースにドロップダウンリストの選択を保存する方法は?
- 14. サブミット/ページリフレッシュ後にドロップダウン選択オプションを保持する方法
- 15. JavaScriptでポストバックした後にドロップダウンから選択した値を維持する
- 16. マスターページにあるコントロール内にドロップダウンリストの選択を保持
- 17. ViewStateにドロップダウンリストの選択値を保存する
- 18. ドロップダウンリストをバインドしてポストバック後に維持する
- 19. jspのstrutsのドロップダウンリストで値を事前選択する方法
- 20. MVC3のドロップダウンリストから選択した値をフェッチする方法
- 21. JavaScriptでドロップダウンリストの選択値を設定する方法。 SharePointリストフォーム
- 22. ドロップダウンリストの選択値無効にする
- 23. クライアントサイドのHTMLマークアップを保持し、ポストバック後に保持
- 24. 方法は、データベーステーブルにドロップダウンリストの項目を選択し保存するために
- 25. @HTMLドロップダウンリストの選択値
- 26. は複数選択ドロップダウンリストから値を保持します。ここ
- 27. HtmlDropDownListFor Editビューで現在の値を選択リストに保持する方法
- 28. FormControlでページの更新に選択した値を保持する方法
- 29. ドロップダウンリスト(HTML)から選択した値を選択した後の表を表示
- 30. asp.netのドロップダウンリストは、ポストバック後の値を変更します