Dictionary<,> 绑定到 Asp.Net MVC 中的控制器

Dictionary<,> Binding to a Controller in Asp.Net MVC

我有一个 class 如下所示。

   public class ProductViewGridModel
    {
        public long Id { get; set; }
        public string PackageCode { get; set; }
        public string ProductName { get; set; }
        public string ProductCategory { get; set; }
        public IDictionary<string, string> Localizations { get; set; }

    }

我将模型渲染成这样查看。(foreach 语句 运行 到 table,我不会在这里显示它。)

 @foreach (var localization in Model.Localizations)
                {
                    var p = localization.Value;
                    <tr>
                        <td class="adminData">
                            <input class="k-textbox" type="text" value="@p" name="productView.Localizations[@localization.Key]" />
                            <input type="hidden" value="@p" name="productView.Localizations[@localization.Key]" />
                        </td>
                    </tr>
                }

我有一个按钮,该按钮通过 ajax 调用将表单值发送到控制器。

其他模型绑定没问题,但我想将所有本地化输入绑定到本地化模型。 但本地化始终为空。我该如何绑定它?

输入的名字有误。默认 modelbinder 将查找 属性 Localizations:

@foreach (var localization in Model.Localizations)
{
    var p = localization.Value;
    <tr>
        <td class="adminData">
            <input class="k-textbox" type="text" value="@p" name="Localizations[@localization.Key]" />
            <input type="hidden" value="@p" name="Localizations[@localization.Key]" />
        </td>
    </tr>
}