首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >取消选中ASP.NET MVC3 | CheckBoxFor(m => m.Go),即使我的Model.Go为true也是如此

取消选中ASP.NET MVC3 | CheckBoxFor(m => m.Go),即使我的Model.Go为true也是如此
EN

Stack Overflow用户
提问于 2012-08-17 02:38:55
回答 2查看 1.3K关注 0票数 0

我对正在发生的事情感到非常困惑。所以Go是一个布尔型变量,在my Model中,Go当前的结果是true。为什么这两个结果会有不同的值?

代码语言:javascript
运行
复制
@Html.TextBoxFor(m => m.Go); 
@Model.Go;
@Html.CheckBoxFor(m => m.Go);

@Html.TextBoxFor(m => m.Go)结果为FALSE

@Html.CheckBoxFor(m => m.Go)结果显示为未复选框(当我期望复选框时)

@Model.Go结果为真(这是我期望发生的事情)

为什么@Html.TextBoxFor(m => m.Go)会导致false?

为什么@Html.CheckBoxFor(m => m.Go)会导致一个未选中的框。非常感谢!

我的控制器

代码语言:javascript
运行
复制
    [HttpPost]
    public ActionResult IXT_FS_LeakCheckAnode(IXT_FS_LeakCheckAnodeModel model, string buttontype)
    {
        model.FormObject = new FormSubmitObject();
        // If the Go has been hit, set the FormObject go be true also.
        if (model.Go) { model.FormObject.go = true; }
        // Add values if necessary, If its not on a submit it will be okay, because it     will not submit in the model.
        List<string> list = new List<string>();
        list.Add("SNT" + model.MainSerial);
        list.Add("USR" + model.BadgeID);
        list.Add("TMS" + 0);

        model.FormObject.MainSerial = model.MainSerial; // Sets the main serial

        model.FormObject = mm.submitGetFormHelper(model.FormObject, "XFA", list, ModelState.IsValid, buttontype);
        if (model.FormObject.checkmsg == "go_pass")       // Update header info.
        {
            model.TubeType = model.FormObject.form_values_dict["TUT"];
            model.FormObject.go = true;
            model.Go = true;
        }
        else if (model.FormObject.checkmsg == "get_pass")  // Update the empty filled.
        {
            model.BadgeID = model.FormObject.form_values_dict["USR"];
            model.MainSerial = model.FormObject.form_values_dict["SNT"];

            // Grabs the TMS double value and converts it into a Time Stamp.
            double latestDate_dbl = Convert.ToDouble(model.FormObject.form_values_dict["TMS"]);
            DateTime latestDate = mm.parseTimeStamp(latestDate_dbl);
            model.LatestDate = "Completed on: " + latestDate.ToString();
            ViewData["Error"] = model.FormObject.errormsg;
        }
        else if (model.FormObject.checkmsg == "submit_pass" || model.FormObject.checkmsg == "clear_pass")// Clear form and let operator submission passed. or clear button
        {
            ModelState.Clear();
            IXT_FS_LeakCheckAnodeModel clear_model = new IXT_FS_LeakCheckAnodeModel();
            return View(clear_model);
        }


        ViewData["Error"] = model.FormObject.errormsg;

        return View(model);
    }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-17 02:41:12

更有可能的是,你在ViewBag或ViewData中有一个叫做Go的东西,它干扰了很多东西。在渲染时,MVC更喜欢模型状态而不是模型值。

票数 1
EN

Stack Overflow用户

发布于 2012-08-17 02:45:51

我认为对于布尔值,您可能应该考虑使用复选框而不是文本框。如果您尝试执行以下操作会发生什么:

代码语言:javascript
运行
复制
@Html.EditorFor(m=>m.Go)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11993424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档