相关疑难解决方法(0)

模型绑定器ValueProvider附加到现有值+ MVC 4

我的模型绑定器中有以下方法:

protected override object CreateModel(ControllerContext controllerContext, ModelBindingContext bindingContext, Type modelType)
    {
        if (bindingContext.ValueProvider.GetValue("Id") == null)
        {
            string s = bindingContext.ValueProvider.GetValue("IsSoftDeleted").AttemptedValue;

            bool d = Convert.ToBoolean(s);
            return OrgFactory.Create(bindingContext.ValueProvider.GetValue("Caption").AttemptedValue,
                            bindingContext.ValueProvider.GetValue("NameInUse").AttemptedValue,
                            bindingContext.ValueProvider.GetValue("Description").AttemptedValue,
                            d, new Party());
        }
        else
        {
            return OrgFactory.Create(bindingContext.ValueProvider.GetValue("Caption").AttemptedValue,
                            bindingContext.ValueProvider.GetValue("NameInUse").AttemptedValue,
                            bindingContext.ValueProvider.GetValue("Description").AttemptedValue, 
                            Convert.ToBoolean(bindingContext.ValueProvider.GetValue("IsSoftDeleted").AttemptedValue));
        }
    }
Run Code Online (Sandbox Code Playgroud)

在create.cshtml视图中,如果我检查chebox的IsSoftDeleted,它在模型绑定器中的值将变为"true,false",它应该只是真的.

你能告诉我做错了什么吗?

create.cshtml

@using PartyBiz.Models.Objects
@model Organization

@using (Html.BeginForm("Create", "Organization", FormMethod.Post))
{

@Html.ValidationSummary(true)
<fieldset>
    <legend>Create a New Organization</legend>

    <div class="editor-label">
        @Html.LabelFor(model => model.Caption) 
        @Html.EditorFor(model => model.Caption, new { @class = "txt"}) 
        @Html.ValidationMessageFor(model => model.Caption) 
    </div> <br />

    <div class="editor-label"> …
Run Code Online (Sandbox Code Playgroud)

razor asp.net-mvc-4

2
推荐指数
1
解决办法
3789
查看次数

标签 统计

asp.net-mvc-4 ×1

razor ×1