我的HTML如下。
<div class="input-group phone-input">
<span class="input-group-btn">
...
<input type="hidden" name="phone[1][type]" class="type-input" value="" />
<input type="text" name="phone[1][number]" class="form-control k-textbox" placeholder="+1 (999) 999 9999" />
...
我的视图模型如下。
public class PhoneNumberDTO
{
public int type { get; set; }
public string number { get; set; }
}
public class AccountCreationDTO
{
....
public IList<PhoneNumberDTO> phone { get; set; }
}
但是它不起作用。但在请求参数中,它会按如下所示传递给服务器。
电话[1] [类型] 291910 电话[1] [号码] 2500000
答案 0 :(得分:0)
我想您正在使用ASP.NET MVC。
我认为您的操作与此类似:
[HttpPost]
public ActionResult Index(AccountCreationDTO accountCreationDTO)
{
return View();
}
我认为您应该这样删除input
名称中的第二个方括号。
<input name="phone[0].type" value="0" />
<input name="phone[0].number" value="0" />
<input name="phone[1].type" value="1" />
<input name="phone[1].number" value="1" />
让我知道这是否可以解决您的问题。尽管我认为在这种情况下最好使用Razor的Html.TextBoxFor()
帮助程序。
(我不确定phone
列表的初始化方式)