一个字段的多个文本框

时间:2012-12-04 15:03:18

标签: c# asp.net-mvc

如果我有3个字段的3个文本框需要附加在一起,你会怎么做呢?

例如:

@Html.TextBoxFor(model => model.PhoneNumber, new { @id = "PhoneNumber1"})
@Html.TextBoxFor(model => model.PhoneNumber, new { @id = "PhoneNumber2"})
@Html.TextBoxFor(model => model.PhoneNumber, new { @id = "PhoneNumber3"})

但是当我在控制器中调用model.PhoneNumber时,我只得到第一个文本框值。

2 个答案:

答案 0 :(得分:3)

您的模型phoneNumber1, phoneNumber2, phoneNumber3中需要多个电话号码,因为您只能将一种类型的一个元素绑定到模型。

或者您可以使用FormCollection

使用标准导入而不是模型绑定

<input type="text" value="" name="phoneNumber" id="phoneNumber1" />
<input type="text" value="" name="phoneNumber" id="phoneNumber2" />
<input type="text" value="" name="phoneNumber" id="phoneNumber3" />

然后在您的控制器中

[HttpPost]
public ActionResult Index(MyModel model, FormCollection frm){

//get elements from form
String[] numbers = frm["phoneNumber"].Split(',');

// you will have your 3 numbers


}

答案 1 :(得分:-2)

Javascript hack:

<script type="text/javascript">

$('#formID').submit(function() {
    $('#PhoneNumber1').val($('#PhoneNumber1').val() + ', ' + $('#PhoneNumber2').val() + ', ' + $('#PhoneNumber2').val());
});

</script>