Reputation:
If I have 3 text boxes for 3 field which need to be appended together, how would you go about doing this?
for example:
@Html.TextBoxFor(model => model.PhoneNumber, new { @id = "PhoneNumber1"})
@Html.TextBoxFor(model => model.PhoneNumber, new { @id = "PhoneNumber2"})
@Html.TextBoxFor(model => model.PhoneNumber, new { @id = "PhoneNumber3"})
but when I call model.PhoneNumber in the controller, I only get the first text box value.
Upvotes: 0
Views: 2108
Reputation: 5594
You would need multiple phone numbers in your model phoneNumber1, phoneNumber2, phoneNumber3
as you can only bind one element of one type to the model.
Alternatively you can use FormCollection
use standard imports instead of model binding
<input type="text" value="" name="phoneNumber" id="phoneNumber1" />
<input type="text" value="" name="phoneNumber" id="phoneNumber2" />
<input type="text" value="" name="phoneNumber" id="phoneNumber3" />
Then in your Controller
[HttpPost]
public ActionResult Index(MyModel model, FormCollection frm){
//get elements from form
String[] numbers = frm["phoneNumber"].Split(',');
// you will have your 3 numbers
}
Upvotes: 3
Reputation: 9519
Javascript hack:
<script type="text/javascript">
$('#formID').submit(function() {
$('#PhoneNumber1').val($('#PhoneNumber1').val() + ', ' + $('#PhoneNumber2').val() + ', ' + $('#PhoneNumber2').val());
});
</script>
Upvotes: -2