Guid在MVC绑定中使用一个Guid绑定到字符串数组

时间:2015-07-19 06:09:10

标签: asp.net-mvc asp.net-mvc-4 model-binding guid

我注意到MVC绑定中的奇怪行为。假设我有ViewModel将数据传入/传出我的View。运送可以有许多PaymenTypes(类型为ItemViewModel)。例如:

public class ShippingViewModel
{
    public ItemViewModel[] PaymentTypes { get; set; }
}

public class ItemViewModel
{
    public ItemViewModel()
    {
    }

    public ItemViewModel(Guid key, string value, bool isActive)
    {
        Key = key;
        Value = value;
        IsActive = isActive;
    }

    public object Key { get; set; }
    public string Value { get; set; }
    public bool IsActive { get; set; }
}

在我看来,我有所有付款类型的复选框(我不想因为设计而使用多个下拉列表)。

        @{ int order = 0;}
        @foreach (var item in Model.PaymentTypes)
        {
            <div class="checkbox-group">
                @Html.Hidden("PaymentTypes[" + order + "].Key", item.Key)
                @Html.Label("PaymentTypes[" + order + "].IsActive", item.Value, new { @class = "sectioncheckboxhelp" })
                @if (item.IsActive)
                {
                    @Html.CheckBox("PaymentTypes[" + order + "].IsActive", new { @class = "form-control sectioncheckbox", @checked = "checked" })
                }
                else
                {
                    @Html.CheckBox("PaymentTypes[" + order + "].IsActive", new { @class = "form-control sectioncheckbox" })
                }

            </div>

            order++;
        }

一切正常但在发布到我的控制器操作后,Key不是Guid,而是字符串数组,其中一个键是Guid

预期:

  • Key:Guid(当然是对象)

但我有

  • Key:string []其中string [0]的类型为Guid,为字符串

当我对整数值使用相同的解决方案时,一切都运行良好。 任何想法为什么Guid从视图绑定到对象数组?

enter image description here

0 个答案:

没有答案