フォローオンthis question:ドロップダウンリストからユーザーの選択に基づいて値を計算し、その値をフォーム変数/モデルプロパティに入れる場合、どうすればよいですか?ドロップダウンからフォーム値を入力するにはどうすればよいですか?
1
A
答えて
5
ASP.NET MVC開発者には、というビューモデルを使用し、ViewBag/ViewDataについては忘れてしまいます。。彼の質問/問題の解決策であるケースの99%。だからここ
は、あなたが適切にドロップダウンリストを表現することができます最小限のビューモデルです:
public class MyViewModel
{
// a scalar property on the view model to hold the selected value
[DisplayName("item")]
[Required]
public string ItemId { get; set; }
// a collection to represent the list of available options
// in the drop down
public IEnumerable<SelectListItem> Items { get; set; }
... and some other properties that your view might require
}
、その後表示するには、このビューモデルを投入し、合格するコントローラのアクションを持っている:
public ActionResult Index()
{
var model = new MyViewModel
{
// TODO: those values probably come from your database or something
Items = new[]
{
new SelectListItem { Value = "1", Text = "item 1" },
new SelectListItem { Value = "2", Text = "item 2" },
new SelectListItem { Value = "3", Text = "item 3" },
}
};
return View(model);
}
フォームとドロップダウンリストを含むことができる、このビューモデルに対応する強く型付けされたビューを持つことができます。
、あなたはこのフォームが送信されますし、その内側にドロップダウンリストから選択した値を取得することができるようになりますあなたのコントローラに対応するアクション可能性があり、最終的:
[HttpPost]
public ActionResult Index(MyViewModel model)
{
// model.ItemId will contain the selected value from the dropdown list
...
}
0
を私はから(情報を推測します前の質問)、ドロップダウンで選択した項目に基づいてajaxを使用してItem Priceデータを取得し、通常のフォーム投稿の一部としてアクションメソッドに送信したいとします。
手順1)製品のViewModelを作成します。
public class ProductViewModel
{
public string SelectedItemId { get; set; }
public IEnumerable<SelectListItem> Items { get; set; }
public decimal ItemPrice { set; get; }
}
ステップ2)ドロップで選択した項目を変更するとは強く型付けされたビュー
@model MvcApplication1.Models.ProductViewModel
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
@using (Html.BeginForm())
{
@Html.DropDownListFor(x => x.SelectedItemId, Model.Items, "Select..")
<div id="divItemPrice"> </div>
@Html.HiddenFor(x=>x.ItemPrice)
<button type="submit">Save</button>
}
<script type="text/javascript">
$(function(){
$("#SelectedItemId").change(function(){
var val=$(this).val();
console.debug(val);
$.get("@Url.Action("GetPrice","Product")", { itemId : val },function(data){
$("#ItemPrice").val(data);
$("#divItemPrice").html(data);
});
});
});
</script>
を追加)この
public class ProductController : Controller
{
public ActionResult Index()
{
var objProduct = new ProductViewModel();
objProduct.Items = new[]
{
new SelectListItem { Value = "1", Text = "Perfume" },
new SelectListItem { Value = "3", Text = "Shoe" },
new SelectListItem { Value = "3", Text = "Shirt" }
};
return View(objProduct);
}
[HttpPost]
public ActionResult Index(ProductViewModel objProduct)
{
//Validate and Save to DB and do whatever
return View(objProduct);
}
public string GetPrice(int itemId)
{
decimal itemPrice = 0.0M;
//using the Id, get the price of the product from your data layer and set that to itemPrice variable.
itemPrice = 23.57M;
return itemPrice.ToString();
}
}
ステップ3のような製品のコントローラを作成します。ダウン、jQueryのajaxを使用して、GetPriceアクションメソッドを呼び出して、データを取得します。 divに表示し、ItemPriceのHiddenFieldの値として設定します。
フォームを投稿すると、投稿されたViewModelにそのフォームが表示されます。
これが役に立ちます。
関連する問題
- 1. フォームに入力値を送信しないようにするにはどうすればいいですか?
- 2. どのドロップダウンに入力するのかを指定するにはどうすればよいですか?
- 3. データベースに値を入力するにはどうすればよいですか?
- 4. jQueryでテキストを入力値と入力値に変更するにはどうすればよいですか?
- 5. サーブレットでフォーム入力がクリアされないようにするにはどうすればよいですか?
- 6. 最初のドロップダウンから選択した後、別のドロップダウンにliの値を入力するにはどうすればよいですか?
- 7. INSERTクエリでフォームの入力フィールドの値を使用するにはどうすればよいですか?
- 8. javascriptでフォームの入力値を設定するにはどうすればよいですか?
- 9. Python Django-フォームの入力ファイルタグからファイルパスを取得するにはどうすればよいですか?
- 10. datepickerフォーム入力からjqueryカウントダウンを開始するにはどうすればよいですか?
- 11. フォームの入力フィールドにこの$ dataの値を表示するにはどうすればよいですか?
- 12. 入力フォームに削除不可能な値を追加するにはどうすればよいですか?
- 13. オブジェクトを渡してフォームの入力値を初期化するにはどうすればよいですか?
- 14. ドロップダウン値を保存するにはどうすればよいですか
- 15. 初心者PHP:配列の値からフォームを記入するにはどうすればよいですか?
- 16. ユーザーから入力した値で予測を取得するにはどうすればよいですか?
- 17. ファイルから行列に数値を入力するにはどうすればよいですか?
- 18. フォーム内の入力値はどのようにして得られますか?
- 19. フォームの入力時にフォームのクラスを変更するにはどうすればよいですか?
- 20. AJAXに複数の入力値を入力するにはどうすればよいですか?
- 21. Railsでドロップダウン入力でオブジェクトを参照するにはどうすればよいですか?
- 22. ブラウザのデバッグツールからフォームの入力値を変更できないようにするにはどうすればよいですか?
- 23. 入力値と出力値でマップを表示するにはどうすればよいですか?
- 24. このフォーム入力の出力を配列にするにはどうすればよいですか?
- 25. primeNGの<p-calendar>から入力値を取得するにはどうすればよいですか?
- 26. ユーザー入力からハッシュマップ値を編集するにはどうすればよいですか?
- 27. html日付入力値から月名を取得するにはどうすればよいですか?
- 28. 配列リストの値をユーザー入力から変更するにはどうすればよいですか?
- 29. データベースからテキストボックスの値を入力するにはどうすればよいですか?
- 30. EditTextユーザー入力から値を表示するにはどうすればよいですか?