我想使用dropdownlist來隱藏和取消隱藏文本框,因此,例如,從下拉列表中選擇0時,視圖上不應出現文本框,但如果從下拉列表中選擇1 ,一個文本框應該類似於所選值2出現,它應該顯示兩個框,然後我想將所選值和文本框文本傳遞給控制器動作中的http [post]以執行一些計算。我可以在webforms中完成所有這些,但是我不知道如何在mvc 2中實現這一點,我可以使用Form集合將值從視圖傳遞給控制器,但是我將如何傳遞下拉列表值。任何例子或建議將不勝感激。在mvc中使用級聯下拉列表和文本框2
0
A
回答
1
有很多方法可以實現此讓我們使用JavaScript來管理舉一個例子輸入字段基於下拉列表的選定值。
作爲總是以一個視圖模型開始:
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 here
相關問題
- 1. 在沒有jQuery或JSON的mvc 2中級聯下拉列表
- 2. 如何在mvc中使用級聯下拉列表
- 3. 與MVC VS2010級聯下拉列表AJAX
- 4. asp.net MVC級聯下拉列表
- 5. MVC級聯下拉列表HTTP POST
- 6. 級聯下拉列表MVC 3 C#
- 7. Selenium級聯下拉列表框
- 8. 級聯下拉列表使用jQuery
- 9. Json級聯下拉列表
- 10. 級聯下拉列表
- 11. 級聯列表下拉
- 12. 級聯下拉列表
- 13. 使用CSS的2級下拉列表
- 14. 級聯下拉框
- 15. KendoUI級聯下拉列表,需要2個下拉列表中的值。
- 16. 在asp.net mvc 2.0中級聯下拉列表?
- 17. 在LINQ中使用Lambda表達式級聯下拉列表
- 18. 使用引導程序在mvc表單中找到文本框和2個下拉列表3
- 19. 綁定和級聯下拉列表MVC 3
- 20. 從MVC中的單個表(Razor)級聯下拉列表
- 21. 級聯下拉MVC 3
- 22. MVC級聯式下拉
- 23. 使用jQuery填充父級下拉選擇中的級聯下拉列表
- 24. 三級級聯下拉列表
- 25. Javascript可降級級聯下拉列表
- 26. 使用ajax級聯兩個下拉框
- 27. 級聯下拉框使用Knockout.js
- 28. 如何在MVC SPA中使用Angular JS實現級聯下拉列表?
- 29. 級聯下拉框從MSSQL不級聯
- 30. 禁用劍道級聯下拉列表