【问题标题】:how to set value to AttemptedValue of ValueProvide + MVC 4如何将值设置为 ValueProvide + MVC 4 的 AttemptedValue
【发布时间】:2013-06-26 10:40:15
【问题描述】:

我陷入了一个奇怪的问题。

我的 MVC 视图中有一个复选框,它是从 jQuery 呈现的。

<div>
    <label for="check" class="chk">
        Del ?
    <input id="IsSoftDeleted" name="IsSoftDeleted" data-val-required="The Del? field is required." data-val="true" type="checkbox" class="check"  />
    </label>
</div>

脚本的编写方式是选中和未选中的值是打开和关闭。

我在我的 bodel binder 中按如下方式处理它:

protected override object CreateModel(ControllerContext controllerContext, ModelBindingContext bindingContext, Type modelType)
    {
        bool softDelete = Convert.ToBoolean(bindingContext.ValueProvider.GetValue("IsSoftDeleted").AttemptedValue != null
                  && bindingContext.ValueProvider.GetValue("IsSoftDeleted").AttemptedValue == "on" ? "true" : "false");


        return OrgFactory.Create(bindingContext.ValueProvider.GetValue("Caption").AttemptedValue,
            bindingContext.ValueProvider.GetValue("NameInUse").AttemptedValue,
            bindingContext.ValueProvider.GetValue("Description").AttemptedValue,
            softDelete, new Party());
    }

这很好用,组织的 IsSoftDeleted 属性现在是 true 或 false。

但是,自从我的模型类中的布尔值 IsSoftDeleted 以来,ModelState 指的是尝试值,即 on 并且 ModelState 变为 false。

我尝试将值设置为 AttemptedValue 属性,但无法访问。

有人可以建议我如何解决它吗?

【问题讨论】:

    标签: c#-4.0 asp.net-mvc-4


    【解决方案1】:

    冷静下来!!! 我们目前在 jQuery 中处理它..

    我想我们不能扩展 valueprovider 类,如果是,请给 use too 一些方法,我们该怎么做!!

    【讨论】:

      猜你喜欢
      • 2013-06-25
      • 1970-01-01
      • 2015-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多