0

送信を押したときに作成するために POST したい次のものがあります。送信を押すと、id = debugTxt の入力の値を参照するオブジェクト参照エラーが発生します。オブジェクトの状態を失ったため、このエラーが発生したと思われます。

私の質問は、モデルから取得した初期ビューでテキストを設定し、ユーザーが POST で更新できるようにするにはどうすればよいですか?

@using (Html.BeginForm("Create", "PhysDoc"))
{
    <table>
        <tr>
           <td class="title">Debug Mode</td>
           <td>
                This input does the initial GET correctly.  On POST I get object ref error related to the value inside @Model.
                <input type="text" id="debugTxt" name="debugModeTxt" value="@Model.DebugMode" />
            </td>  
        </tr>
        <tr>
            <td>
                <input type="submit" value="Submit" />
            </td>
        </tr>
    </table>                
}

Create メソッド (ここでは例外がスローされないことに注意してください)。

    [HttpPost]
    public ActionResult Create(string debugModeTxt)
    {
        PhysdocSettings settings = new PhysdocSettings();
        settings.DebugMode = bool.Parse(debugModeTxt);
        PhysDocSettingsBL settingBL = new PhysDocSettingsBL();
        settingBL.UpdateSettings(settings);
        return View("Index");
    } 

ここで例外が発生します。

value="@Model.DebugMode"value="True"コード を変更すると正常に動作します。しかし、これは Model.DebugMode に等しい初期値を私に与えません。

4

1 に答える 1

3

これを試してください... HTML ヘルパーを使用して、フィールドのデフォルト値を次のように指定します。

@Html.TextBox("[name]", @Model.DebugMode)

これが機能しない場合、結果について詳しく説明できますか?


を呼び出すときに、モデルを Index に渡していませんreturn View("Index");。ビューを呼び出しているだけなので、実際に Null 参照例外が発生します。

于 2012-11-09T19:43:42.177 に答える