0

私は何が起こっているのか非常に混乱しています。したがって、Goはブール変数であり、私のモデルではGoは現在trueになっています。これら2つの結果が異なる値になるのはなぜですか?

@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結果はTRUEになります(私が期待すること)

@ Html.TextBoxFor(m => m.Go)がfalseになるのはなぜですか?どうして@Html.CheckBoxFor(m => m.Go)は、チェックされていないボックスになります

どうもありがとうございます!

私のコントローラー

    [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);
    }
4

2 に答える 2

1

おそらく、ViewBagまたはViewDataにGoと呼ばれるものがあり、それが物事を妨害しています。MVCは、レンダリング時にモデル値よりもモデル状態を優先します。

于 2012-08-16T18:41:11.927 に答える
0

ブール値の場合、テキストボックスの代わりにチェックボックスを使用することを検討する必要があると思います。試してみるとどうなりますか:

@Html.EditorFor(m=>m.Go)
于 2012-08-16T18:45:51.433 に答える