0

当我点击提交时,我有以下内容要发布以创建。只是,当我点击提交时,我会收到一个对象引用错误,它指的是我的 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>                
}

创建方法(注意这里没有抛出异常)。

    [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)

如果这不起作用,您能否详细说明结果?


当您调用return View("Index");. 您只是在调用视图,因此您确实会得到一个空引用异常。

于 2012-11-09T19:43:42.177 回答