如何为数组类型输入定义ViewModel

时间:2019-04-30 05:26:03

标签: c# model-view-controller

我的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

1 个答案:

答案 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" />

然后正确列出该列表: Here

让我知道这是否可以解决您的问题。尽管我认为在这种情况下最好使用Razor的Html.TextBoxFor()帮助程序。

(我不确定phone列表的初始化方式)