ドロップダウンリストを使用してテキストボックスを非表示にして再表示しようとしています。たとえば、ドロップダウンリストから0を選択した場合、テキストボックスは表示されません。 1つのテキストボックスが選択された値2に対して同様に表示され、2つのボックスが表示されます。次に、コントローラーアクションでhttp [post]に選択した値とテキストボックスのテキストを渡して計算を実行します。私はwebformsでこれをすべて行うことができますが、私はMVC 2でこれを達成する方法を知らない、私はフォームコレクションを使用してビューからコントローラに値を渡すことができますが、どのように私はドロップダウンリストの値を渡します。すべての例や提案をいただければ幸いです。mvcでカスケードドロップダウンリストとテキストボックスを操作する2
0
A
答えて
1
からいくつかの初期のアイデアを得ることができた配列を渡すためにこれを実装する多くの方法があります。入力フィールドは、ドロップダウンリストの選択された値に基づいています。
いつものようにビューモデルを起動します。その後、
public class MyViewModel
{
public string[] Values { get; set; }
public int SelectedItem { get; set; }
public IEnumerable<SelectListItem> Items
{
get
{
return Enumerable.Range(0, 4).Select(x => new SelectListItem
{
Value = x.ToString(),
Text = x + " Item(s)"
});
}
}
}
コントローラ:
public class HomeController : Controller
{
public ActionResult Index()
{
var model = new MyViewModel
{
SelectedItem = 2,
Values = new[] { "", "" }
};
return View(model);
}
[HttpPost]
public ActionResult Index(MyViewModel model)
{
// Here you will get the model properly initialized
return View(model);
}
}
し、最終的にビュー:
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<AppName.Models.MyViewModel>" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title>Index</title>
<script type="text/javascript" src="<%: Url.Content("~/scripts/jquery-1.5.1.js") %>"></script>
<script type="text/javascript">
$(function() {
$('#SelectedItem').change(function() {
var count = parseInt($(this).val(), 10);
if (count == 0) {
$('#values').html('');
return;
}
for (var i = 0; i < count; i++) {
var item = $(':text[name="Values[' + i + ']"]');
if (item.length < 1) {
$('#values').append(
$('<div/>').html(
$('<input/>', {
type: 'text',
'data-index': i,
name: 'Values[' + i + ']',
value: ''
})
)
);
}
}
$('#values :text').each(function (index, element) {
if (index >= count) {
$(element).parent('div').remove();
}
});
});
});
</script>
</head>
<body>
<div>
<% using (Html.BeginForm()) { %>
<%= Html.DropDownListFor(
x => x.SelectedItem,
new SelectList(Model.Items, "Value", "Text")
) %>
<div id="values">
<% for (int i = 0; i < Model.Values.Length; i++) { %>
<div>
<%= Html.EditorFor(x => x.Values[i]) %>
</div>
<% } %>
</div>
<input type="submit" value="OK" />
<% } %>
</div>
</body>
</html>
1
それでは、管理するためにJavaScriptを使用して一つの例を見てみましょうあなたがドロップダウンのクリックイベントにいくつかのJavaScriptを記述する必要があるとあなたがhere
関連する問題
- 1. MVCでAjaxを使用して3つのカスケードドロップダウンリストを作成
- 2. LINQ2SQLでASP.NET MVC、jQuery/AJAXカスケードドロップダウンリストの問題?
- 3. カスケードドロップダウンリスト
- 4. Zend framework 2/Doctrine 2 /バルク操作とイベントトリガー
- 5. ASP.NET MVCとODBC 2.0の操作方法
- 6. ASP.NET MVCビューモデルパターン - 検証とデータベース操作
- 7. ASP.NET MVC編集操作ですか?
- 8. jQueryを使ってPHPでカスケードドロップダウンリストを作成する方法
- 9. Spring MVC 3 GET操作とPOST操作の間にコマンドオブジェクト値が失われる
- 10. カスケードドロップダウンリストでオートコンプリートを実装する方法
- 11. C#でデータを操作する操作
- 12. ViewModelからWPFウィンドウコントロール(タブ、テキストボックス、リストボックス)を操作する方法
- 13. 角2のディレクティブとDOM操作
- 14. ASP.Net MVC2のカスケードドロップダウンリスト
- 15. Golangは2つの操作
- 16. 2つの異なるテーブルでの操作と同じ
- 17. ASP .NET MVC:ビューとの間でラジオボタンを操作する<->コントローラ
- 18. asp.net mvcのウェブサイトのユーザーの操作/操作を追跡しますか?
- 19. 1回のリダイレクトで2回の操作
- 20. InRequestScopeをNinjectとWebApiで操作する
- 21. acts_as_taggable_onとActiveAdminでタグを操作する
- 22. MVC 3 RAZOR動的にテキストボックスを作成する
- 23. KendoUI MVCグリッドの更新操作
- 24. ASP.NET MVC - 暗黙的なフォーム操作
- 25. ASP.NET MVC、URL構造の操作
- 26. ajaxで2つのURLを操作する
- 27. CodeIgniter画像操作クラスで2つの画像をマージする
- 28. 2台のコンピュータでEclipseを操作する
- 29. haskellの2つのリストに対する2つの操作
- 30. telerikグリッドのバインド列としてカスケードドロップダウンリスト