ASP.NET?MVC前臺動態(tài)添加文本框并在后臺使用FormCollection接收值
在"MVC批量添加,增加一條記錄的同時添加N條集合屬性所對應(yīng)的個體"中,對于前臺傳來的多個TextBox值,在控制器方法中通過強(qiáng)類型來接收。使用FormCollection也可以接收來自前臺的多個TextBox值。實(shí)現(xiàn)效果如下:
動態(tài)添加TextBox:

后臺使用FormCollection接收來自前臺的TextBox值,再以TempData把接收到的值返回:

當(dāng)頁面沒有TextBox,點(diǎn)擊"移除",提示"沒有文本框可被移除":

在HomeController中,先獲取前臺用來計(jì)數(shù)的隱藏域的值,然后遍歷,根據(jù)前臺Input的name屬性值的命名規(guī)則獲取到每個TextBox的值。
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult Index(FormCollection collection)
{
var inputCount = 0; //前端文本框的數(shù)量
var inputValues = new List<string>();//前端文本款的值放到這個集合
if (int.TryParse(collection["TextBoxCount"], out inputCount))
{
for (int i = 1; i <= inputCount; i++)
{
if (!string.IsNullOrEmpty(collection["textbox" + i]))
{
inputValues.Add(collection["textbox" + i]);
}
}
}
TempData["InputResult"] = inputValues;
return View();
}
}在Home/Index.cshtml中,通過jquery添加或移除TextBox。
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<div>
@if (TempData["InputResult"] != null)
{
<ul>
@foreach (var item in (List<string>) TempData["InputResult"])
{
<li>@item</li>
}
</ul>
}
</div>
@using (Html.BeginForm("Index", "Home", FormMethod.Post))
{
<div>
<div id="TextBoxesGroup">
<input type="text" id="textbox1" name="textbox1"/>
</div>
<hr/>
@Html.Hidden("TextBoxCount", 1)
<input type="button" value="添加" id="add"/>
<input type="button" value="移除" id="remove"/>
<input type="submit" value="提交"/>
</div>
}
@section scripts
{
<script type="text/javascript">
$(document).ready(function() {
//默認(rèn)焦點(diǎn)
$('#textbox1').focus();
//點(diǎn)擊添加
$('#add').click(function() {
//從隱藏域中獲取當(dāng)前文本框的數(shù)量
var currentCount = parseInt($('#TextBoxCount').val(), 10);
//文本框數(shù)量加1
var newCount = currentCount + 1;
//創(chuàng)建新的文本框
var newInput = $(document.createElement('Input')).attr({
"type": "text",
"id": "textbox" + newCount,
"name": "textbox" + newCount
});
//把新的文本框附加到區(qū)域中
$('#TextBoxesGroup').append(newInput);
//把當(dāng)前文本框的數(shù)量賦值到用來計(jì)數(shù)隱藏域
$('#TextBoxCount').val(newCount);
//把焦點(diǎn)轉(zhuǎn)移到新添加的文本框中來
$('#textbox' + newCount).focus();
});
//點(diǎn)擊移除
$('#remove').click(function() {
//從隱藏域中獲取當(dāng)前文本框的數(shù)量
var currentCount = parseInt($('#TextBoxCount').val(), 10);
if (currentCount == 0) {
alert('已經(jīng)沒有文本框可以被移除了~~');
return false;
}
//移除當(dāng)前文本框
$('#textbox' + currentCount).remove();
//把新的文本框計(jì)數(shù)賦值給隱藏域
var newCount = currentCount - 1;
$('#TextBoxCount').val(newCount);
});
});
</script>
}以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
- ASP.NET?MVC前臺動態(tài)添加文本框并在后臺使用FormCollection接收值
- 利用ASP.Net?Core中的Razor實(shí)現(xiàn)動態(tài)菜單
- ASP.NET?Core實(shí)現(xiàn)動態(tài)獲取文件并下載
- asp.net core為IHttpClientFactory添加動態(tài)命名配置
- ASP.NET Core奇淫技巧之動態(tài)WebApi的實(shí)現(xiàn)
- ASP.NET Core MVC如何實(shí)現(xiàn)運(yùn)行時動態(tài)定義Controller類型
- 1個文件如何輕松搞定Asp.net core 3.1動態(tài)頁面轉(zhuǎn)靜態(tài)頁面
- Asp.net mvc在view中用C#代碼動態(tài)創(chuàng)建元素
- ASP.Net動態(tài)讀取Excel文件最簡方法
- asp.net mvc 動態(tài)編譯生成Controller的方法
- asp.net動態(tài)生成HTML表單的方法
相關(guān)文章
ASP.NET(C#) 讀取EXCEL另加解決日期問題的方法分享
這篇文章介紹了ASP.NET(C#) 讀取EXCEL另加解決日期問題的方法,有需要的朋友可以參考一下2013-11-11
asp.net下 jquery jason 高效傳輸數(shù)據(jù)
jquery jason 高效傳輸數(shù)據(jù)轉(zhuǎn)自網(wǎng)上稍有修改2009-03-03
ASP.NET動態(tài)生成靜態(tài)頁面的實(shí)例代碼
生成靜態(tài)頁有很多好處,可以緩解服務(wù)器壓力、方便搜索網(wǎng)站搜索等等,下面介紹一下生成靜態(tài)頁的實(shí)例代碼,有需要的朋友可以參考一下2013-07-07
asp.net基于HashTable實(shí)現(xiàn)購物車的方法
這篇文章主要介紹了asp.net基于HashTable實(shí)現(xiàn)購物車的方法,涉及asp.net中HashTable結(jié)合session實(shí)現(xiàn)購物車功能的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-12-12
asp.net textbox javascript實(shí)現(xiàn)enter與ctrl+enter互換 文本框發(fā)送消息與換行(類似
今天與大家分享一下 asp.net textbox javascript實(shí)現(xiàn)enter與ctrl+enter互換 文本框發(fā)送消息與換行(類似于QQ),這個功能到底怎么實(shí)現(xiàn)?首先聲明以下幾點(diǎn)2012-01-01
ASP.NET批量操作基于原生html標(biāo)簽的無序列表的三種方法
無序列表被大量使用,ASP.NET雖然內(nèi)置了BulletedList控件,用于創(chuàng)建和操作無序列表,但感覺不太好用2014-09-09
asp.net后臺cs中的JSON格式變量在前臺Js中調(diào)用方法(前后臺示例代碼)
本文主要介紹下asp.net后臺cs中的JSON格式變量在前臺Js中調(diào)用方法,下面是前后臺的實(shí)現(xiàn)代碼,感興趣的朋友可以參考下哈,下對大家有所幫助2013-06-06

